functionA(){this.age=100;}A.prototype={constructor:A,sex:this.age,click:function(){returnthis.age;}};vara=newA();console.log(a.sex);//undefinedconsole.log(a.click());//100为什么a.sex没有值,而click()却可以?原理上是怎么回事,最后不都是指向a对象么?A。prototype之后不应该等之后不应该等同于A.prototype={constructor:A,sex:this.age,click:function(){...}};这样吗?写A.prototype={}的时候,你并没有去扩展A.prototype,而是用一个新的对象自变量重写了A.prototype,而这个新的对象字面量创建于window之下,于是里面的this.xxx自然不可能指向你设想的a?网上看到的解释,但是不懂什么叫拓展,这样怎么就成了新的对象自重写了?
qq_花开花谢_0
相关分类