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更具限制性,那是因为它是选择的.如果不小心,我可以看到所有的灵活性会让你陷入困境.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...