避免重写原型时constructor属性的指向错误 发表于 2012-07-13 | | 阅读次数 在整个替换构造函数的prototype值时,会发生对象的constructor属性执行了Object,而非构造函数。通常的修正方法有以下两种: 1234567891011var Foo = function(){};Foo.prototype = { name : "foo", bar : function(){ console.log(this.name); }};// 修正替换Foo.prototype后导致construtor指向错误Foo.prototype.constructor = Foo; 或者使用一个闭包的方式,局部更新prototype: 123456(function(p){ p.name = "foo"; p.bar = function(){ console.log(p.name); }})(Foo.prototype); 本文作者: IIssNan 本文链接: http://notes.iissnan.com/2012/ensure-construct-property-when-rewrite-prototype-in-javascript/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!