首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript中内置的构造函数

Javascript中内置的构造函数
EN

Stack Overflow用户
提问于 2012-03-17 07:22:59
回答 1查看 983关注 0票数 4

当我这样做的时候:

var person = new Object();  
person.name = "alex";
console.log(person)

输出为:

Object { name="alex"}

但是,假设我去掉了"new“这个词,并这样做:

var person = Object();  
person.name = "alex";
console.log(person)

输出也是:

Object { name="alex"}

为什么?

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 19:03:44

由于您的示例是一个内置函数的对象类型,正如上面所回答的,对于这种类型是相同的,所以对于大多数其他内置函数,比如Number(),它的工作方式是不同的。在使用'new‘关键字调用它们时,您应该非常小心。因为在默认情况下,带有函数构造函数的'new‘关键字返回一个对象,而不是直接返回一个基元类型。因此,例如,如果两个变量中的一个是使用new Number()声明和赋值的,而另一个是使用Number()声明和赋值的,则不能对这两个变量进行严格相等检查

下面是一个例子:

var num1 = Number(26); 
var num2 = new Number(26);

num1 == num2; // returns true

num1 === num2; // returns false

您可以在控制台日志中查看差异:

console.log(num1);
> 26

console.log(num2);
> Number {26}
>     __proto__: Number
>     [[PrimitiveValue]]: 26
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9745729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档