function A( ){ }
A.prototype={
m:10,
n:20
}
var aa=new A( );
alert(aa.constructor==Object);
alert(aa instanceof Object);
alert(aa.constructor==A);
alert(aa instanceof A);问题很简单,第3个和第4个alert,为何结果不同???
A.prototype={
m:10,
n:20
}
var aa=new A( );
alert(aa.constructor==Object);
alert(aa instanceof Object);
alert(aa.constructor==A);
alert(aa instanceof A);问题很简单,第3个和第4个alert,为何结果不同???
解决方案 »
- window.showModalDialog提交表单后自动关闭问题
- 请教一个问题(分不多了,希望大家能帮帮我)
- jquery datagrid 绑定数据
- 请教如何通过一个方法来调用JS中的其他方法呢??
- 不用VAR也能定义? $也能做变量?
- 网站目录传递参数的方法如(http://www.xxx.com/xxx/?id=xxx)如何实现
- attachEvent方法,对于有参数传递的函数如何使用???
- 如果做滚动效果呀
- 为什么添加了function updateSales()之后连js里第一个alert都不显示?
- htttp://www.itfriend.cn 首页的动画效果如何实现的
- jquery控制层的滚动条的问题
- 这里的this到底是指向哪里的.高手进来
1. 每个function 都有一个prototype
2. prototype 会有一个 constructor 的属性
3. constructor 是指向这个function的
这三点都是默认情况下当改写A.prototype后,原来的这种关系就被破坏了,constructor就不在指向function A了,所以答案就是false了。
可以参考: http://blog.csdn.net/lovexp2010/article/details/7248395楼下继续……
也就是说你重写了A.prototype,A.prototype就没有constructor这个属性
所以自然A的实例的原型也没有该属性了,除非你手动给他添加上这个属性
A实例中的constructor是从原型链中的顶层(也就是Object)那里找到的,即:Object.prototype.constructor=Object;
aa 的原型链其实是另一个原型对象!所以aa 的constructor不是ALZ可以去看下《JS高级程序设计》里面第6章对象的讲解!