#javascript
Помогите пожалуйста понять что детально происходит при таком вызове: String.prototype.camelCase=function(){ return [typeof this, this]; } console.log("camel case word".camelCase()); Непонятно в первую очередь почему возвращается тип объект, а не строка. Я понимаю, что вызов camelCase() происходит в контексте "camel case word". То есть this будет указывать на эту строку. НО именно на строку, а возвращается почему-то, объект.
Ответы
Ответ 1
Так как данная функция не в strict моде, this внутри нее является объектом класса String, а не литералом строки. Поэтому тип соответствующий. Если добавить директиву "use strict", то будет ожидаемый тобой результат String.prototype.strictCamelCase = function() { "use strict"; return [typeof this, this]; } console.log("camel case word".strictCamelCase());
Комментариев нет:
Отправить комментарий