当你改变原型时,构造函数为什么会改变?(参见代码)
Why does the .constructor change when you change the .prototype? (see code)
下面的代码进一步解释了这个问题:
function MyConstructor() {}
var myobject = new MyConstructor();
myobject.constructor == MyConstructor; // true
function MyConstructor() {}
MyConstructor.prototype = {};
var myobject = new MyConstructor();
myobject.constructor == MyConstructor; // false
那么,为什么第二个块为false?
创建的对象的constructor
会因为其原型的constructor
而更改。这就是为什么您通常不应该覆盖原型的原因。如果你这样做了,一定要稍后再设置:
function MyConstructor() {}
MyConstructor.prototype = {};
MyConstructor.prototype.constructor = MyConstructor;
…
var myobject = new MyConstructor();
myobject.constructor == MyConstructor; // false
相关文章:
- Angular.js 和 Fabric.js:一旦代码移动到 Angular 指令,Fabric canvas 就会改变
- 当你改变原型时,构造函数为什么会改变?(参见代码)
- 改变innerHTML值的Javascript代码如果textlength >250.
- 我修改了我的PHP代码,但是浏览器中显示的结果没有改变.是否有某种“缓存”?PHP中的错误
- JavaScript代码通过点击不同的图像来改变文本区域的值
- 你能用一行Javascript代码改变多个变量的相同属性吗?
- 如何通过代码改变控件的颜色
- 这段代码有什么问题?我试图改变每个部分的高度到窗口的高度
- 我有反应标签代码工作完美,但我需要改变html结构
- 这是一个JavaScript代码的示例,其语义将通过缩小而改变
- JS代码改变表单提交不工作
- 想通过javascript按钮改变图像src,但代码不工作
- 在哪个订单网页代码执行,我们如何改变订单
- 如何创建一个按钮来改变从“全选”的功能选择none"在此Javascript代码中
- 改变视频id在youtube嵌入代码与查询值
- 代码来改变BG图像不工作,但可以改变BG的颜色
- Javascript代码动态改变图像的工作在IE不是FF, Chrome等:(
- 如何在类名改变时再次执行js代码
- 如何让JavaScript改变代码中元素的样式
- 流星:当模板变量改变时,重新运行代码