gpt4 book ai didi

javascript - javascript中new赋值和直接赋值有什么区别?

转载 作者:行者123 更新时间:2023-12-03 07:21:31 25 4
gpt4 key购买 nike

这是我的场景:

> var babloo = new Number(12)

[Number: 12]

> var bablaa = 12

12

> babloo.

babloo.__defineGetter__ babloo.__defineSetter__ babloo.__lookupGetter__ babloo.__lookupSetter__ babloo.__proto__ babloo.constructor babloo.hasOwnProperty
babloo.isPrototypeOf babloo.propertyIsEnumerable babloo.toLocaleString babloo.toString babloo.valueOf
babloo.toExponential babloo.toFixed babloo.toPrecision

> bablaa.

bablaa.__defineGetter__ bablaa.__defineSetter__ bablaa.__lookupGetter__ bablaa.__lookupSetter__ bablaa.__proto__ bablaa.constructor bablaa.hasOwnProperty
bablaa.isPrototypeOf bablaa.propertyIsEnumerable bablaa.toLocaleString bablaa.toString bablaa.valueOf
bablaa.toExponential bablaa.toFixed bablaa.toPrecision

> typeof babloo

'object'
> typeof bablaa

'number'

这里的“babloo”和“bablaa”有什么区别?是否存在需要以不同方式处理它们的用法的场景?

最佳答案

考虑:

var babloo = new Number(12);   //typeof babloo is "object"

它是显式使用 Number 构造函数 创建的,其 PrimitiveValue 属性设置为 12

考虑:

var bablaa = 12    //typeof bablaa is "number"

其持有的原始数据类型编号值为 12。

它也是使用 Number 构造函数 构造的,但隐式使用 Number 作为包装器。

如果打电话

Object.getPrototypeOf(babloo)  //Number

Object.getPrototypeOf(bablaa)     //Number

两者都会返回 Number 作为其原型(prototype)。

关于javascript - javascript中new赋值和直接赋值有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com