【发布时间】:2019-03-22 06:42:44
【问题描述】:
我理解这种写法
var x = Number("7"); // makes a number, a primitive
var y = new Number("7"); // makes a Number object
而且我知道对选项 2 的常见注意事项,但幕后发生了什么?我的印象是,如果一个函数是一个构造函数,它不应该通过 return 语句返回一个值:它只是设置它的隐式对象 this,然后返回它。
那么 Number、String 和 Boolean 构造函数如何能够返回原始类型或对象呢? JavaScript 引擎是否以不同的方式解析这些表达式作为语言的特殊功能?或者程序员也可以“重载”一个构造函数来返回一个基元或一个对象,这取决于构造函数是在有/没有“new”的情况下被调用的吗?
【问题讨论】:
标签: javascript object constructor primitive