- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【精选】超好的Prototype教程
从 prototype.js 深入学习 javascript 的面向对象特性
js是一门很强大的语言,灵活,方便。目前我接触到的语言当中,从语法角度上讲,只有 Ruby
比它更爽。
不过我接触的动态语言只有: jsrubypythonflash的as 简单的几门, 应该算是井底之蛙之
见。
js 语法成分简单,没有 ruby 语言复杂。所以有时候我觉得她更干净(RubyFans 不要攻击
我哦,我也是很爱很爱很爱Ruby的)!
prototype.js 无疑是 js的漂亮之作,从它身上应该可以学到一些东西。
如果你用 js 在页面仅仅能写出 if, alert 等简单的验证代码,或者想多了解一下 Js, 那么此
文可能对你有帮助。
好了,开始吧。
现在我突然想起了 Thinkinginjava 中的 一切皆是对像,其实我觉得这句话 有点不适合
java 反倒是更适合 js
1.怎样构造(初始化)对象?
js 代码
varPrototype= {
Version:1.5.0_rc1,
ScriptFragment: (?:)((\n|\r|.)*?)(?:\/script),
emptyFunction:function(){},
K: function(x){returnx}
}
就这样,初始化了一个对象(名字就叫 Prototype),以及对象的四个成员: Version,
ScriptFragment,emptyFunction,K
我们也来试试:
js 代码
varbbs={
name:JavaEye,
version: 2.0,
describe:做最棒的软件开发交流区,
sayHello:function(){alert(hello,im javaeye! )}
}
于是你可以这样使用: bbs.name 或 bbs.sayHello()
看到吗? sayHello 是一个方法哦,不要惊慌,一切都是对象,所以它和 name 是一样的,
只不过初始化,或定义的语法不一样。想起 js 中的正则表达式中的那两个杆杆了吗? 可
爱吧!
方法是对象,所以它可以被当作参数传递,或者作为方法的返回值。
所以 Prototype 中有一个 Version 属性,还有一个匹配 script 的正则式字符串, 一个空方
法emptyFunction,还有一个方法 K, 它仅仅返回参数。
没问题吧,继续!
2. 构造函数?
先让我们写段代码吧(中学时,我语文极差(大学没语文了),我想写代码让你们明白我心里真
实的想法):
js 代码
varPerson= function(name) {// 这里 Person 是一个方法
this.name= name;
}
varbencode=newPersion(bencode); // 这里像Java吧!
alert(bencode.name);
先看结果:
从 alert(bencode.name); 可以知道,bencode是对象, 而 name 就是 bencode 的属性, 它
被正确地初始化为 bencode
所以 varbencode=newPersion(bencode); 就是构造了一个新的对象,Person() 相当于构造
函数
所以 new 这个关键字, 就是构造一个新的对象,并且在这个对象上调用相应的方法,并
将这个对象返回。
按上面说: 方法 如果用在 在 new 后面,就相当于成了构造函数了。
话又说回来了,如果 var bencode=newPersion(bencode) 是 构造了一个对象,像Java, 那
么 Person 是不是类呢?
可是 Person 不是方法吗? 可是方法不也是对象吗? 类也是对象?
一切皆对象?
本来无一物!
好了,看 prototype.js吧
js 代码
varClass ={
create:function(){
returnfunction(){
this.initialize.apply(this,arguments);
}
}
}
初始化一个 Class 对象, 它有一个成员,是一个方法, 这个方法返因另一个方法(方法
是对象,所以可以作为参数或者返回值)
所以如果我们这么做:
js 代码
1 varA=Class.create(); // 此时 A 是一个方法,方
文档评论(0)