JavaScript объект и примитив - PullRequest
       10

JavaScript объект и примитив

0 голосов
/ 14 сентября 2018

Пожалуйста, я хочу, чтобы кто-нибудь объяснил мне следующий код:

 var f = new Number(44);

 f.name = "Yusuf";
 f.hello = function() {
   console.log("Hello");
 };

 console.log(typeof f);

 f.hello();

 console.log(f.name);
 console.log(f.toString() + "good");
 console.log(Object.prototype.hasOwnProperty(name));
 console.log(f.hasOwnProperty(hello));
 console.log(f.length);

Когда я проверяю тип переменной. Объект возвращается, и я уверен, что это из-за функции вызова конструктора объекта Number. Я добавил два свойства, одно член и метод, и когда я их вызываю, это работает, но когда я использовал hasOwnProperty (), false - это возвращение для ключа члена и неопределенное для ключа метода.

Почему это так?

куда идут методы, если hasOwnProperty не работает как обычно, когда это предполагается, когда я на самом деле проверяю свойство содержащего объекта .?

Я проверил Number и объект объекта, и все они возвращают false.

1 Ответ

0 голосов
/ 14 сентября 2018

Метод hasOwnProperty принимает ключ свойства в виде строки:

console.log(Number.prototype.hasOwnProperty("name"));
console.log(Object.prototype.hasOwnProperty.call(f, "name"));
console.log(f.hasOwnProperty("name"));
console.log(f.hasOwnProperty("hello"));

Я рекомендую всегда "use strict" mode , чтобы вы получали исключения при попытке использовать необъявленные переменные.

...