锁定老帖子 主题:领悟 JavaScript 中的面向对象
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-17
function对象是应该有一个私有属性name的,但是ie没有实现,ff实现的是制度属性,当然不可以覆盖,至于最后的对象为什么可以继承原性name,当然了,是对象又不是函数当然可以继承name了,你要是挂Function.prototype.name上面,函数的name就不会变
|
|
返回顶楼 | |
发表时间:2008-01-17
是只读属性
|
|
返回顶楼 | |
发表时间:2008-01-17
同上:
function对象好像有很多属性,比如:name(上例的名字就是func),length(参数个数),argument……等等和一些内置的函数 可是通过 1. func.prototype.name=”prototype of func”; 2. var f = new func(); 3. alert(f.name); 这种就可以覆盖掉function的内置属性name是为什么 |
|
返回顶楼 | |
发表时间:2008-01-17
大哥,那不是覆盖,构造函数和原型继承你好象不是太明白的样子,寒暑对象和普通构造对象是不一样地,我表达有些不到位,可能你理解有难度
|
|
返回顶楼 | |
发表时间:2008-01-17
function func() {
this.name=”name has been changed.” } func.prototype.name=”prototype of func”; var f = new func(); alert(f.name); 还是不理解为什么会弹出构造里边的name,谁可以再细致的解释一下?谢谢 |
|
返回顶楼 | |
发表时间:2008-01-17
请了解原形继承,然后就知道了
|
|
返回顶楼 | |
发表时间:2008-01-17
我也在找这方面的资料...多推荐..www.5251info.cn
|
|
返回顶楼 | |
发表时间:2008-01-17
|
|
返回顶楼 | |
发表时间:2008-01-18
dlovek 写道 function func() { 对象寻找属性时,如果自己没有这个属性,会在构造方法的propotype所指向/引用的对象中找,看能否找到同名属性, this.name=”name has been changed.” ; } func.prototype.name=”prototype of func”; var f = new func(); alert(f.name); 还是不理解为什么会弹出构造里边的name,谁可以再细致的解释一下?谢谢 如果找到了,不就直接使用了吗 |
|
返回顶楼 | |
发表时间:2008-01-18
不完全,如果构造方法(函数)的prototype没有还会找prototype对象的构造方法(函数)的prototype对象,直到没有构造方法为止
|
|
返回顶楼 | |