84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
Object.prototype = { handle: function(){} }
与
Object.prototype.handle = function(){}
有什么区别?我在chrome控制台打出来看第一种生命方式没有constructor了
constructor
光阴似箭催人老,日月如移越少年。
肯定是有区别的第一种把一个对象引用给了Object的prototype,这样直接覆盖了原型本来就有的引用第二种是给Object的prototype加了一个handle的属性,并没有改变引用
第一种是直接给Object.prototype赋了一个新的值,引用了新的对象,将原来的Object.prototype抛弃了;第二种是给原来的Object.prototype对象指派了一个新的属性,并没有改变Object.prototype的引用。因为一个普通的对象是没有constructor属性的,constructor是function的构造器,所以你第一种方式给Object.prototype指定为一个普通的对象,当然就没有constructor啦。
函数fun建立后fun.prototype.constructor指向fun自身,constructor是prototype上的一个属性,你第一种方式直接把prototype指向另外一个对象,constructor自然是没有了。
fun
fun.prototype.constructor
prototype
第一种相当于完全重写了原型对象,是不会有constructor的,如果需要,需要自己显式指定
第二种只是在默认的原型对象上增加一个属性
肯定是有区别的
第一种把一个对象引用给了Object的prototype,这样直接覆盖了原型本来就有的引用
第二种是给Object的prototype加了一个handle的属性,并没有改变引用
第一种是直接给Object.prototype赋了一个新的值,引用了新的对象,将原来的Object.prototype抛弃了;第二种是给原来的Object.prototype对象指派了一个新的属性,并没有改变Object.prototype的引用。因为一个普通的对象是没有constructor属性的,constructor是function的构造器,所以你第一种方式给Object.prototype指定为一个普通的对象,当然就没有constructor啦。
函数
fun
建立后fun.prototype.constructor
指向fun
自身,constructor
是prototype
上的一个属性,你第一种方式直接把prototype
指向另外一个对象,constructor
自然是没有了。第一种相当于完全重写了原型对象,是不会有constructor的,如果需要,需要自己显式指定
第二种只是在默认的原型对象上增加一个属性