日期:2014-05-16 浏览次数:20357 次
?prototype 是只有在new 出现的时候在会起作用
?
?
?
function A() { this.ab = function () { alert("ab方法"); } }; A.prototype.abc = function() { alert("abc方法"); }; var B = new A(); B.ab(); B.abc();
?
为什么这俩个方法都可以找的到呢?
一般的疑问是在B.abc();为什么可以找的到,
而实际上B.ab();找的到才是转了很多个弯才实现的.
因为prototype这个属性的定义就是在new的时候prototype下面有constructor的方法都可以找的到,
那为什么B.ab();也找的到呢,一般情况我们认为是通过A的constructor找到的.
其实不是这样的.他是通ab()在创造出来的时候直接赋给了A.prototype.ab();
然后在通过prototype的constructor方法传给B的constructor的;
B没有prototype属性.
以上是我的理解,仅供参考
?
?