繁体   English   中英

JavaScript对象和基元

[英]JavaScript Object and Primitive

请我让某人为我解释以下代码:

 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在我实际上正在检查包含对象的属性时应该去往哪里,该方法将去哪里?

我检查了数字和对象对象,它们都返回false。

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"模式,以便在尝试使用未声明的变量时出现异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM