javascript - 将构造函数分配给某物是什么意思?

标签 javascript

有时我会看到这样的东西,但我很不明白:

// ...

that.constructor = ...

//...

虽然构造函数属性不应该是要赋值的东西,但返回对象是其实例的属性。我认为 .constructor 是一个类似于 .length 的属性,用于返回数据的字符串并且不可更改。这是真的吗?

最佳答案

当一个 ECMAScript 函数对象被创建时,它被赋予一个 public prototype 属性,它是一个普通对象,以防函数被用作构造函数。原型(prototype)对象被赋予一个公共(public)constructor 属性,该属性是对该函数的引用。从构造函数创建的实例将继承原型(prototype)的构造函数属性(除非它被实例上的构造函数属性或其原型(prototype)链上的更高层隐藏)。

constructor 属性可能会被重新赋值,通常是因为原来的原型(prototype)对象被其他对象替换了。 constructor 属性可以设置为任何值,因此它并不是特别有用。

关于宿主对象的原型(prototype)属性(如果它们有的话),请注意它们可以为所欲为(包括在您尝试设置甚至访问它们时抛出错误)。

关于javascript - 将构造函数分配给某物是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7314033/

相关文章:

javascript - 使用console.log()打印对象的方法

javascript - React --> Warning : validateDOMNesting(. ..): <p> 不能作为 <p> 的后代出现

javascript - 当用户进入当前网页时,html 5 视频以全屏模式自动打开

javascript - 无法设置未定义 4 的属性 'size'

javascript - 阵列中的 knockout 阵列

javascript - 迭代两个数组并执行 AND/OR 比较 = 返回 true

javascript - Netsuite suitelet + 将数据从 Get 传递到 Post

javascript - 如何附加可访问 html 属性的 jquery ui 元素?

javascript - angularjs ui-router - 当击中特定子路由时如何隐藏子菜单

javascript - 为什么我的带参数的函数不起作用