JavaScript对象和原始

问题描述 投票:0回答:1

我希望有人为我解释下面的代码:

 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。

javascript prototype
1个回答
0
投票

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,以便在尝试使用未声明的变量时获得异常。

© www.soinside.com 2019 - 2024. All rights reserved.