|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-11-07
FUNCTION TEST(A,B)
{ THIS.A=A THIS.B=B } 对于以上的FUNCTION来说,TEST.PROTOTYPE的INITIAL VALUE是什么? 或者说所有FUNCTION的PROTOTYPE的初始值是什么样的OBJECT? 谢了 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2007-11-08
just a new Object.
|
|
| 返回顶楼 | |
|
时间:2007-11-08
我想我应该明白了,所有的FUNCTION都会有PROTOTYPE属性,且PROTOTYPE的INITIALL VALUE为一个OBJECT,这个OBJECT的CONSTRUCTOR就是指向CONSTRUCTOR FUNCTION本身.
同时,所有OBJECT的PROTOTYPE的值都应该和其CONSTRUCTOR FUNCTION的PROTOTYPE的值是一样. 但是这样理解是否正确: VAR MYOBJ = NEW TEST的时候,先NEW一个OBJ,只是创建了一个EMPTY OBJ,然后CONSTRUCTOR FUNCTION的PROTOTYPE赋值给EMPTY OBJ的PROROTYPE,最后EMPTY OBJ赋值给变量MYOBJ? 请指点,谢了.... |
|
| 返回顶楼 | |
|
时间:2007-11-08
你的理解大体正确。注意区分Object的prototype,它不是一个属性,你应该说Object的__proto__或者Object的[[prototype]],这样不会让别人误解。还有,assign只是指定一个引用,说“赋值”稍有歧义。
最后,麻烦不要全用大写。这样不礼貌哦。 |
|
| 返回顶楼 | |
|
时间:2007-11-08
所有的对象(函数除外)都没有prototype属性,只有函数有prototype属性,但是所有对象都隐式继承自其构造函数的prototype属性(String Number Boolean的影子对象也包括在内),只不过SpiderMonkey暴露了__proto__对象隐式继承原形的属性而已
|
|
| 返回顶楼 | |
|
时间:2007-11-08
OK,明白,谢了...
|
|
| 返回顶楼 | |
|
时间:2007-11-09
为了节省资源,在此贴中还需要继续问一个基本问题,关于PROTOTYPE. alert(test.prototype.__proto__ == Object.prototype) ; //return true 通过以上代码,我这样的理解是否正确: 对于test.prorotype,本身是一个object,因此也同样inherit Object class. 由此是否可以做出这样一个总结: 所有Javascript function来说会直接有prototype属性, instance用constructor function的prorotype来做继承. 同时,Javascript中所有的object(当然也包括所有的function,native obj,等)都会继承其constructor function的prototype属性,以__proto__的形式. 但是有一个小问题,比如 <script> var i; </script> i在没有给i赋任何值的情况下,它是undefined, 怎么理解它与Object的关系,还是没有任何关系?? 请指点,谢谢... |
|
| 返回顶楼 | |
|
时间:2007-11-09
undefined不是对象,是基本类型,也不存在String Boolean Number影子对象,纯基本类型,没有什么原形关系
|
|
| 返回顶楼 | |
浏览 654 次





