急急急,javascript的prototype问题?

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:03:30
急急急,javascript的prototype问题?

<script language="javascript">

function kk(){
this.a=123;
}

document.write (kk.prototype==Object());

</script>

第一:document.write (kk.prototype)结果是[object Object]

第二:document.write (Object())结果是[object Object]

kk.prototype原型就是指向了function Object(){}的,既然是指向了Object(),那么

为什么(kk.prototype)==Object()不相等啊?返回false啊?

xlang_new : 我个人觉得楼主的问题一点都不小白。。

说实话,这个问题问到了javascript的最核心的机制。。。。

不过要同通俗的语言来解释prototype机制。还真不是容易的事情!

wk,服了u
非常无语,懒得解释这种超级小白问题

to wuchangqian
楼主的问题,根本不在于prototype或者object,他把两个完全不同的东西拿来比较,当然是false。就好比一个大苹果,一个小苹果,两个都是苹果,但你说他们==吗?
所以我说是小白问题

如果两边都加上typeof(),就等了
typeof(大苹果)=苹果
typeof(小苹果)=苹果
typeof(kk.prototype)="object"
typeof(object())="object"

具体的对象问题,helen已经解释了,我就不再多此一举

prototype虽然难以理解,但是楼主自己的思想太多了,你自己把问题想成这样,如果按你的思路:

var txt = new Array();

var txt2 = new Array();

alert(txt == txt2);//按你的理解,说小了都是一个数组,说大了也都是一个对象,那么相等吗?

kk.prototype原型就是指向了function Object(){}

这句话是对的,JS里一切皆对象,也就是

kk.prototype = new Object();//kk对象的类的原型指向一个对象
但是不等于你另外创建一个对象,从内存地址上也不相等,prototype 默认是指向一个对象,这个对象是也就是这个类的原型,也就是每创建一个对象,那么都有这个原型的属性,

学到这里来了,应该是更深层的学习了,一般应用最多的也就是DOM