• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

js面向对象 编程: JavaScript 面向对象_js

javascript 搞代码 7年前 (2018-06-13) 200次浏览 已收录 0个评论

市面上流行了很多 JavaScript 面向对象的编程方法,其中不少都有好些问题。这里总结最正确的 javaScript 面向对象编程模式。
对于类 Special 继承自类 Common 继承自类 Super 的情况,一个 Special 对象的创建,详细说来,应该经历以下步骤。
1 确定继承关系
1.1 读取 Special 的父类,发现是 Common
1.2 读取 Common 的父类,发现是 Super
1.3 读取 Super 的父类,发现没有了(隐形父类 Object)
2 加载类结构(如果没有加载的话。加载过的话则不需要重复加载)
2.1 加载 Super, Common, Special 类的类属性和类方法都有哪些
2.2 加载 Super 类对象具有哪些属性,哪些方法
2.3 加载 Common 类对象具有哪些属性,哪些方法
2.4 加载 Special 类对象具有哪些属性,哪些方法
2.5 给 Super, Common, Special 类的类属性分配空间
2.6 给 Super, Common, Special 类的类属性赋值
3 分配堆空间
3.1 分配 Super 的空间,包括 Super 所有成员的空间
3.2 分配 Common 的空间,包括 Common 所有成员的空间
3.3 分配 Special 的空间,包括 Special 所有成员的空间
4 初始化对象
4.1 调用 Super 的构造方法
4.2 调用 Common 的构造方法
4.3 调用 Special 的构造方法
那么,怎么用 JavaScript 合理并严格地依照标准对象构建顺序创建对象呢?
1 确定继承关系。因为 JavaScript 没有变量类型绑定,所以应该能够允许多继承。其中第一个父类为主父类。
Super._super = [ ];
Common._super = [ Super ];
Special._super = [ Common ];
2 加载类结构
这里涉及到一个技术,熟悉 JavaScript 面向对象编程的人都会很了解,称为原型链(prototype chaining)。JavaScript 面向对象的类结构,其实是靠每一个类的原型对象来保存的。每生成一个对象,都是根据原型对象,制作一个与之具有同样成员,成员值也都相同的新对象。如果直接让一个类的原型对象等于一个其父类的对象,就相当于复制了父类原型的所有成员,放入了当前类的原型中。这些成员除了显示可见的意外,还包括用于 instanceof 的类名属性等一些系统成员变量,从而能够实现子类成员 instanceof
父类类名,得到 true 的结果――这种认定用的属性可以传递给更下一层的子类。
除了由原型链形成的主继承之外,因为 JavaScript 没有引用类型的概念,也就没有接口的概念。所以需要手动加载除主父类以外的其余父类成员。通过 for (var xxx in xxx) 的方式,可以取出其余父类原型中的成员,并用其建立当前类的类结构。这里需要注意,如果各种父类中有名称完全相同的方法,则会以最后加载进来的那个为子类的方法。这不得不说是 JavaScript 面向对象多重继承的一个遗憾。 本文链接http://www.cxybl.com/html/wyzz/JavaScript_Ajax/20120608/28900.html

欢迎大家阅读js面向对象 编程: JavaScript 面向对象…_js》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:js面向对象 编程: JavaScript 面向对象_js
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址