微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 原型与类

史蒂夫·叶格(Steve Yegge)最近发布了一个关于他所说的通用设计模式的 interesting blog post.在那里,他将使用原型作为建模工具,而不是类.我喜欢与继承相比引入更少耦合的方式.但是,通过使用类来实现类,而不是继承,这也是类可以得到的.其他任何人都有使用原型的成功案例,也许有助于解释与类相比,原型的使用优势.我想这是静态建模与动态建模,但更多的例子将是非常受欢迎的.

解决方法

一个有趣的是,很容易使基于原型的语言成为OO,但是很难使OO语言基于原型.

> Alex Arnell的inheritance.js一个简短而甜蜜的代码块,使JavaScript可以作为OO,完成访问父级“Class”.
>这是John Resig解决同样问题的一个问题:http://ejohn.org/blog/simple-javascript-inheritance/.
> Chapter 16 of Programming in Lua描述了Lua中的对象方向.具体来说,section 16.2给出了一个很好的继承例子.

除了你所提及的组合与继承之外,OO是什么样的样子不完全清楚.

原型语言使得复杂的继承行为变得容易.您可以实现类似multiple inheritance,mixin的行为,或者只需从一个对象中选择要添加的对象即可.

Wikipedia’s article提到:“基于原型的编程的倡导者经常认为,基于类的语言鼓励一个发展模式,首先侧重于分类和类之间的关系.相比之下,基于原型的程序设计被认为是鼓励程序员专注于一些示例的行为,后来担心将这些对象分类成类似于类的方式使用的原型对象.“

这不是说原型范例是所有的利弊.如果OO更具限制性,那是因为它是选择的.如果不小心,我可以看到所有的灵活性会让你陷入困境.

原文地址:https://www.jb51.cc/js/153356.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐