Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Почему возвращается объект?

#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());

Комментариев нет:

Отправить комментарий