我希望有人为我解释下面的代码:
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和object对象,它们都返回false。
hasOwnProperty
method将属性键作为字符串:
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,以便在尝试使用未声明的变量时获得异常。