| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1318 人关注过本帖
标题:prototype的12种用法的区别
只看楼主 加入收藏
nbh002
该用户已被删除
收藏
 问题点数:0 回复次数:4 
prototype的12种用法的区别
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: prototype 原形 实例 用法 function 
2008-06-02 21:45
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
我服了你,竟然想出那么多东西~~~很明显你对prototype一点都不了解。
对你提出的部分提出说明,其余的,真的乱来了

1、最正确的用法
2、每次实例化对象a,都会重新赋值prototype的属性,没任何意义,造成浪费
3、代码设计中叫做极晚绑定,也就是在实例化对象后,还可以给对象的添加原型属性和方法。但极晚绑定不适用于大多数情况。
(ps:关于晚绑定和极晚绑定可以参看这个帖子:http://www.
5、this永远指向调用该方法的对象,这里的this指向为null,所以会报错
6、this永远指向调用该方法的对象,这里this指向实例化a的对象,ex   aa = new a();  this即指向aa,this.prototype是aa的prototype
7、参见5
11、 aa的prototype,不是a的prototype

[[it] 本帖最后由 渚薰 于 2008-6-3 09:13 编辑 [/it]]

个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2008-06-03 09:10
nbh002
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-03 21:49
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
1、只有Function对象的实例才有prototype链,var a = function() {}(等价于 a = new Function()), a为Function对象的实例,aa = new a(),aa是a对象的实例。每个对象的prototype链是独立的,只有是该对象的实例才会继承此对象的prototype链(其实,真正的机制并不是想象中的继承,请参看http://www.)。
2、如果不是Function对象的实例,那么它就不能作为对象来进行实例化,即aa = new a(); aa只是一个实例而已,它其实是个object,而不是function,所以无法用new aa。
3、关于prototype的用法,只有第一种是正确且高效的,其他的不用考虑。

个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2008-06-04 10:07
nbh002
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-04 12:38
快速回复:prototype的12种用法的区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019029 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved