Object.prototype = {
handle: function(){}
}
与
Object.prototype.handle = function(){}
有什么区别?我在chrome控制台打出来看第一种生命方式没有constructor
了
Object.prototype = {
handle: function(){}
}
与
Object.prototype.handle = function(){}
有什么区别?我在chrome控制台打出来看第一种生命方式没有constructor
了
第一种是直接给Object.prototype赋了一个新的值,引用了新的对象,将原来的Object.prototype抛弃了;第二种是给原来的Object.prototype对象指派了一个新的属性,并没有改变Object.prototype的引用。因为一个普通的对象是没有constructor属性的,constructor是function的构造器,所以你第一种方式给Object.prototype指定为一个普通的对象,当然就没有constructor啦。
函数fun
建立后fun.prototype.constructor
指向fun
自身,constructor
是prototype
上的一个属性,你第一种方式直接把prototype
指向另外一个对象,constructor
自然是没有了。
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答872 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
肯定是有区别的
第一种把一个对象引用给了Object的prototype,这样直接覆盖了原型本来就有的引用
第二种是给Object的prototype加了一个handle的属性,并没有改变引用