更正一个地方,手误:“于是找a.__prototype__既Function.prototype”应该为:于是找a.__proto__既Function.prototype
解决方案 »
- JS如何判断输入框(就是text或textarea)的值只是空字符串或只带空格得字符串
- 时间问题
- onMouseOver 下拉列表 当光标在页面文本框中的时候,下拉列表不能自动消失? (刚才那个帖子出错打不开了!咋回事儿??!)
- 怎样用JS取得地址栏的值并修改?在线等,愿加分相送
- 封装的js,在里面修改了一下,怎么无反应?
- jquery和ajax在安卓设备的浏览器下会失效吗
- DataTables懂得进
- 实现满位tab,请指教
- 怎样用嵌入的iframe中的一个按钮来控制包含这个iframe的页面的刷新事件呢?
- 怎么测试vue的渲染速度?
- 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
哈哈````
只能说明对象的关系搞的不是很清楚