Javascript原型函数的实质以及点操作符和字面量形式运行的机理

你第二段代码已经重写prototype了啊。。。原来的构造函数被你改没了啊。。。prototype 包含了2个属性,一个是constructor ,另外一个是__proto__你重写了之后 你的prototype 变成了一个object,已经不再是原来的prototype了。你要是这么改就没问题了(这样才是往原型里追加,你第一次写的是给Person本身添加,添加的这些东西是跟prototype是并列关系,此处参照深红给出的说法):Person.prototype.name = "liang";Person.prototype.age = 22 ;Person.prototype.sayName = function(){alert(this.name)}alert(Person.prototype.constructor == Person); //true
■网友
第一段代码就理解错了。Person.name怎么会是往原型里添加属性,明明是给Person函数(函数也是对象)添加属性。好好看下javascript高级程序设计,补下基础吧,不要自己乱想。


    推荐阅读