精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-11-15
windlike 写道 不看懂
什么意思呢?帅哥。。 |
|
返回顶楼 | |
发表时间:2011-11-15
"上述代码是在没有构造函数的情况下,如果存在构造函数"这什么意思,你应该说构造函数没有成员属性,和成员函数,而不能说没有构造函数,搞技术的用词要准确,不然别人会看不懂的
|
|
返回顶楼 | |
发表时间:2011-11-15
曾经在这个所谓的原型上面迷失过好久,后来,突然有一天我恍然大悟!
|
|
返回顶楼 | |
发表时间:2011-11-15
dingchao.lonton 写道 "上述代码是在没有构造函数的情况下,如果存在构造函数"这什么意思,你应该说构造函数没有成员属性,和成员函数,而不能说没有构造函数,搞技术的用词要准确,不然别人会看不懂的
对的,是这个意思,谢谢你的指出。 已经做出更改 :) |
|
返回顶楼 | |
发表时间:2011-11-15
总结的还是很好的,成都小伙,顶一个
|
|
返回顶楼 | |
发表时间:2011-11-16
讲的太复杂
|
|
返回顶楼 | |
发表时间:2011-11-18
呵呵,怎么和昨天晚上看的JavaScript高级程序设计 很相似了。
|
|
返回顶楼 | |
发表时间:2011-11-18
firefly_zp 写道 泰山宏图 写道 lz12366 写道 如果这么说的话
Fruit.prototype.constructor=People.prototype.constructor; 新定义一个function,这样再创建Fruit实例,按上面说的话应该不会再指向Fruit的构造函数了吧?? 上述为指针赋值,就像“光棍节”与“11月11号”一样,是对同一个日子不同的称呼, Fruit.prototype.constructor=People.prototype.constructor = "&构造函数"; 那么下面的说法应该没错吧: Fruit实例的构造函数是 "&构造函数",People实例的构造函数是"&构造函数"。 是这个意思。 但是在使用 prototype 的时候一共有两种方法,一种方法就如上面所示,Fruit.prototype.xxx = "xxx";就可以。 第二种是通过字面量来声明的,即 function Fruit(){ } Fruit.prototype = { category :"apple" , price : 19.9 , showPrice : function(){ alert(price); } } var fruit = new Fruit(); alert(fruit.constructor == Fruit); // false alert(fruit.constructor == Object); // true 很奇怪的一点是,fruit.constructor == Fruit() 的输出false,不再是 true 了。这是因为本质上我们已经重写了默认的 prototype 对象,因此 constructor 属性所指向的内容也就变成了新对象的 constructor 属性,而这个属性指向的是 Object 构造函数。 可以通过增加一句话来定义 constructor。 function Fruit(){ } Fruit.prototype = { constructor:Fruit , category :"apple" , price : 19.9 , showPrice : function(){ alert(price); } } var fruit = new Fruit(); alert(fruit.constructor == Fruit); // true alert(fruit.constructor == Object); //false 显示的声明 constructor 就可以让它知道所指的构造函数。 在上面的代码最后分别加入alert(fruit.construc);alert(Fruit); 相信你会看出区别来的。 |
|
返回顶楼 | |
发表时间:2011-12-02
一句话解决
javascript绝大多数函数都有一个prototype property,而它有一个constructor property, 指向了函数本身。 |
|
返回顶楼 | |
发表时间:2011-12-26
__proto__ 这个属性只在GECKO内核(FF)下面才能看到,而其他内核(trident,webkit)的浏览器是不可见的。
|
|
返回顶楼 | |