JavaScript原型链prototype chain 更正一个地方,手误:“于是找a.__prototype__既Function.prototype”应该为:于是找a.__proto__既Function.prototype 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 再次更正,郁闷~~··iA.say();/*iA本身没有say方法(构造中没有,自己也没有定义过),于是找iA的prototype,没有找到,于是找iA.__proto__即A.prototype,也没有找到,于是再找A.prototype.__proto__即a.prototype,哇,发现了hi,于是调用它,停止查找所以,这里调用的是A.prototype.say输出:A*/应该为:iA.say();/*iA本身没有say方法(构造中没有,自己也没有定义过),于是找iA的prototype,没有找到,于是找iA.__proto__即A.prototype,哇,发现了say,于是调用它,停止查找所以,这里调用的是A.prototype.say输出:A*/ 只能怀疑自己治学不严谨! - -!再次更正:iA.bad()的注释部分iA本身没有hi方法应为iA本身没有bad方法 iA.hi(); /* iA本身没有hi方法(构造中没有,自己也没有定义过), 于是找iA的prototype,没有找到, 于是找iA.__proto__即A.prototype,也没有找到, 于是再找A.prototype.__proto__即a.prototype,仍然没有发现, 继续查找a.prototype.__proto__即Object.prototype,哇,发现了hi,于是调用它,停止查找 输出:hi Object */ a.hi(); /* a本身没有hi方法(构造中没有,自己也没有定义过), 于是找a的prototype,没有找到, 于是找a.__prototype__既Function.prototype,哇,发现了hi,于是调用它,停止查找 输出:hi Function */ 我就想问一个问题a.__prototype_到底是什么,!??我用IE6.0是没定义undefined,你前后说的有矛盾而且A.hi()也是输出的是 hi Funciton这个你没解释好new A() 或是new a()他得到的其实就是一对象,如果他的原型里没有这个方法,他就直接找上一层的prototype也就是Object的hi()方法.如果有就直接调用当前的 而A 与a是一个函数对象.如果他们没有hi()方法,输出的也会是hi object 而且我实了后发现<script type="text/javascript">//Function.prototype.hi = function(){alert('hi Function');}Object.prototype.hi = function(){alert('hi Object');}var a = function(){ this.txt = "a";}a.prototype = { say:function(){alert('a');}}var A = function(){};A.prototype = new a();A.prototype.say = function(){ alert('A');}var iA = new A();//iA是A的实例,iA.__proto__ === A.prototypevar iB = new a();//iB是a的实例,iB.__proto__ === a.prototype//alert(typeof a._prototype_)iA.hi();iB.hi();a.hi()A.hi()</script> 得到的全是 hi Object 哈哈```` 只能说明对象的关系搞的不是很清楚 Meteoric_cry同学,__proto__是SpiderMonkey的JavaScript引擎里的私有属性(JScript中木有),用于指向到实例的instanceof对象的prototype。至于你说的其他的测试结果,在理解本文后应该会看得很清楚的。另,因为本文中存在许多笔误,请转到:http://www.v-ec.com/dh20156/article.asp?id=157查看,欢迎讨论! ^_^ 新人报道,顺便求高人解答新手问题!! 【我快疯了】关于正则match 菜鸟求助关于js的问题 js的mousemove()方法的移动方向问题? document.write(11)没反应? 谁有用过javascript来做RSA加密的?进来看看 一个form表单必须在js之后,如下,但总是不能达到上求 请各位帮小妹看看这个问题,谢谢!怎样用javascript实现依次取出服务器某个文件夹下的文件名? 如何通过table中的一个表格的元素得到他自身的行数、列数是多少? 新学Javascript,请有经验者推荐一二本好书,散分!! js如何实现检索效果 select实现innerHtml的问题
/*
iA本身没有say方法(构造中没有,自己也没有定义过),
于是找iA的prototype,没有找到,
于是找iA.__proto__即A.prototype,也没有找到,
于是再找A.prototype.__proto__即a.prototype,哇,发现了hi,于是调用它,停止查找
所以,这里调用的是A.prototype.say
输出:A
*/应该为:
iA.say();
/*
iA本身没有say方法(构造中没有,自己也没有定义过),
于是找iA的prototype,没有找到,
于是找iA.__proto__即A.prototype,哇,发现了say,于是调用它,停止查找
所以,这里调用的是A.prototype.say
输出:A
*/
iA.hi();
/*
iA本身没有hi方法(构造中没有,自己也没有定义过),
于是找iA的prototype,没有找到,
于是找iA.__proto__即A.prototype,也没有找到,
于是再找A.prototype.__proto__即a.prototype,仍然没有发现,
继续查找a.prototype.__proto__即Object.prototype,哇,发现了hi,于是调用它,停止查找
输出:hi Object
*/ a.hi();
/*
a本身没有hi方法(构造中没有,自己也没有定义过),
于是找a的prototype,没有找到,
于是找a.__prototype__既Function.prototype,哇,发现了hi,于是调用它,停止查找
输出:hi Function
*/
我就想问一个问题
a.__prototype_到底是什么,!??我用IE6.0是没定义undefined,你前后说的有矛盾
而且A.hi()也是输出的是 hi Funciton
这个你没解释好
new A() 或是new a()
他得到的其实就是一对象,如果他的原型里没有这个方法,他就直接找上一层的prototype也就是Object的hi()方法.如果有就直接调用当前的 而A 与a是一个函数对象.如果他们没有hi()方法,输出的也会是hi object
<script type="text/javascript">//Function.prototype.hi = function(){alert('hi Function');}
Object.prototype.hi = function(){alert('hi Object');}var a = function(){
this.txt = "a";
}
a.prototype = {
say:function(){alert('a');}
}
var A = function(){};
A.prototype = new a();
A.prototype.say = function(){
alert('A');
}
var iA = new A();//iA是A的实例,iA.__proto__ === A.prototype
var iB = new a();//iB是a的实例,iB.__proto__ === a.prototype
//alert(typeof a._prototype_)
iA.hi();
iB.hi();
a.hi()
A.hi()
</script>
得到的全是 hi Object
哈哈````
只能说明对象的关系搞的不是很清楚