走进面向对象的Javascript.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
走进面向对象的Javascript

OO JS ——面向对象的Javascript Contents OO的基本要素 Class的定义 不同于Java, C++, JS是通过基于原型的继承实现类的功能. function Circle(r) { this.r = r; } 类的实例化: c = new Circle(3); (1) new 创建一个新的空对象, 并把构造函数Circle赋值给c的constructor属性; (2) new 设置对象的prototype属性. 把对象的constructor的prototype赋值给对象的prototype, 实现了创建对象、继承 Prototype: Class.create(…); 成员变量 成员变量在初始化函数里申明: this.r = r; 注意,在对象生成后也可以定义成员变量,比如 c.name=“my circle”,这是Java不允许的! 但注意判断是否已存在相应的成员变量, 否则会被覆盖: if( !c.name ){ c.name = “my circle”; } 成员函数 标准形式: Cricle.prototype.area = function() { return 3.14 * this.r * this.r; } 不能写成: Circle.area = function(){…} //(不能被继承,类方法) 注:可把prototype看作基类, 它的变量或方法,是所有对象共享的. 调用 c.area() : c.area() - Circle.prototype.area(). prototype里的变量和方法应该是不变的. 比如:Circle.prototype.PI = 3.14 建议: 所有的成员函数都在紧接类定义的地方定义; 类变量 类变量是属于一个类的变量, 是一个常量. 实例不应该去修改它. 它和prototype里定义的变量的功能是相似的. 但访问方式不一样: Circle.prototype.PI = 3.14; //成员变量 Circle.PI = 3.14; //类变量 //用prototype里的变量 Circle.prototype.area1 = function() { return this.PI * this.r * this.r; } //用类变量 Circle.prototype.area2 = function() { return Circle.PI * this.r * this.r; } 类方法 Circle.max = function(a, b) { ??? return a.r b.r ? a : b; } theMax = Circle.max(new Circle(1), new Circle(4)); 继承 function SubCircle(x, y, r) { ? this.x = x; ? this.y = y; ? this.r =r; } SubCircle.prototype = new Circle(0); 这里prototype是一个基类. 实现: var sc = new SubCirlce(1,1,3); sc.area(); 调用过程: sc.area()-sc.prototype.area()-Circle(0).area()-Circle.prototype.area(). 多态 多态是子类会定义和父类具有相同signature的方法. SubCircle.prototype.PI = 100; SubCircle.prototype.area = function() { ? ? return this.PI*this.r*this.r*this.r; } sc.area() ; 调用过程: sc.area()-sc.prototype.area(); Contents Prototype 1.6.0.2 ——Class Class.create: Example: var Animal = Class.create({ initialize: function(name) {this.name = name; }, eat: function() { … } }); var Cat = Class.create(Animal, { eat: function($super, food) { … } }

文档评论(0)

pangzilva + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档