将构造函数赋值给某物是什么意思?
What does it mean to assign a constructor to something?
有时我看到这样的东西,我很不理解:
// ...
that.constructor = ...
//...
我认为构造函数属性不应该是用来赋值的对象,而应该是返回对象所属实例的对象的属性。我认为.constructor
是一个像.length
一样的属性,用于返回数据的字符串,并且不适合更改。这是真的吗?
当创建ECMAScript函数对象时,它被赋予一个公共的prototype属性,该属性是一个普通对象,以防该函数被用作构造函数。原型对象被赋予一个公共构造函数属性,该属性是对函数的引用。从构造函数创建的实例将继承原型的构造函数属性(除非它被实例上的构造函数属性遮蔽,或者在它的prototype链上)。
构造函数属性可以被重新赋值,通常是因为原始原型对象被其他对象所替换。构造函数属性可以设置为任何值,因此它不是特别有用。
关于宿主对象的prototype属性(如果它们有的话),请注意它们可以做任何它们喜欢做的事情(包括当您试图设置甚至访问它们时抛出错误)。
你不能改变所有javascript对象实例的构造函数。在mozilla的文档中有一个简洁的例子:
function Type(){};
var types = [
new Array, [],
new Boolean, true,
new Date,
new Error,
new Function, function(){},
Math,
new Number, 1,
new Object, {},
new RegExp, /(?:)/,
new String, "test"
];
for(var i = 0; i < types.length; i++){
types[i].constructor = Type;
types[i] = [types[i].constructor, types[i] instanceof Type, types[i].toString()];
};
alert(types.join("'n"));
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/constructor 据我所知,构造函数将返回创建对象原型的函数。
http://www.w3schools.com/jsref/jsref_constructor_boolean.asp例如,像w3schools说:
<script type="text/javascript">
var bool=new Boolean();
document.write(bool.constructor);
</script>
将返回:
function Boolean() { [native code] }
我从未使用过它,但我认为它是用于调试目的。
相关文章:
- @@(“at at”)在ES6 JavaScript中是什么意思
- minimy javascript是什么意思?Backbone.js
- var w = q||问2;这个表达式是什么意思
- 函数(i,val)在javascript中是什么意思
- 问号在这段代码中是什么意思
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- ||{}在javascript中是什么意思
- “转义字符串”在Regex中是什么意思?(Javascript)
- 这个代码是什么意思(history.replaceState和history.pushstate)
- :: 是什么意思
- 这是什么意思?getData([renderData]);
- MDN文档中关于弄清楚XUL元素的段落是什么意思:“如何将覆盖扩展转换为无重启”
- require('file_path')后面的后缀(模块)在javascript文件中是什么意思
- Twitter Bootstrap的Tab插件中“data-api”是什么意思
- 箭头函数 '() => {}' 在 Javascript 中是什么意思?
- 在这种情况下,“foo[x]”是什么意思?
- 在 http 请求中添加事件侦听器 ( request.on ) 是什么意思?而笏就是它的用途
- 这种格式是什么意思 T00:00:00.000Z
- 这行是什么意思“ operator.indexOf(btnVal) > -1”
- JQuery:这段代码是什么意思