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

306
02 ноября 2017, 08:21

Помогите пожалуйста понять что детально происходит при таком вызове:

  String.prototype.camelCase=function(){ 
    	return [typeof this, this]; 
    } 
     
    console.log("camel case word".camelCase());

Непонятно в первую очередь почему возвращается тип объект, а не строка.

Я понимаю, что вызов camelCase() происходит в контексте "camel case word". То есть this будет указывать на эту строку. НО именно на строку, а возвращается почему-то, объект.

Answer 1

Так как данная функция не в strict моде, this внутри нее является объектом класса String, а не литералом строки. Поэтому тип соответствующий.

Если добавить директиву "use strict", то будет ожидаемый тобой результат

String.prototype.strictCamelCase = function() { 
  "use strict"; 
  return [typeof this, this]; 
} 
 
console.log("camel case word".strictCamelCase());

READ ALSO
Распознавание голоса Web Kit Speech Recognition не работает

Распознавание голоса Web Kit Speech Recognition не работает

Здравствуйте, я добавил на сайт технологию Web Kit Speech Recognition API, эта технология способна распознавать голосМой сайт находится на локальном сервере,...

231
PHP качество кода

PHP качество кода

Есть php код:

223
Рефакторинг кода?

Рефакторинг кода?

Как можно сократить и привести в порядок код?

265