论坛首页 Web前端技术论坛

领悟 JavaScript 中的面向对象

浏览 96208 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-01-17  
function对象是应该有一个私有属性name的,但是ie没有实现,ff实现的是制度属性,当然不可以覆盖,至于最后的对象为什么可以继承原性name,当然了,是对象又不是函数当然可以继承name了,你要是挂Function.prototype.name上面,函数的name就不会变
0 请登录后投票
   发表时间:2008-01-17  
是只读属性
0 请登录后投票
   发表时间: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是为什么
0 请登录后投票
   发表时间:2008-01-17  
大哥,那不是覆盖,构造函数和原型继承你好象不是太明白的样子,寒暑对象和普通构造对象是不一样地,我表达有些不到位,可能你理解有难度
0 请登录后投票
   发表时间: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,谁可以再细致的解释一下?谢谢
0 请登录后投票
   发表时间:2008-01-17  
请了解原形继承,然后就知道了
0 请登录后投票
   发表时间:2008-01-17  
我也在找这方面的资料...多推荐..www.5251info.cn
0 请登录后投票
   发表时间:2008-01-17  
多线程下载
0 请登录后投票
   发表时间:2008-01-18  
dlovek 写道
function func() {
this.name=”name has been changed.” ;
}
func.prototype.name=”prototype of func”;
var f = new func();
alert(f.name);
还是不理解为什么会弹出构造里边的name,谁可以再细致的解释一下?谢谢
对象寻找属性时,如果自己没有这个属性,会在构造方法的propotype所指向/引用的对象中找,看能否找到同名属性,

如果找到了,不就直接使用了吗

0 请登录后投票
   发表时间:2008-01-18  
不完全,如果构造方法(函数)的prototype没有还会找prototype对象的构造方法(函数)的prototype对象,直到没有构造方法为止
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics