![]() |
1
13
一个有趣的地方是,很容易使基于原型的语言行为OO,但很难使OO语言行为基于原型。
除了您提到的组合与继承之外,还不完全清楚OO原型是什么样子的。 原型语言使复杂的继承行为变得容易。您可以实施 multiple inheritance , mixin -比如行为,或者只是从一个对象中挑选你想要添加到另一个对象的内容。 Wikipedia's article 提到:“基于原型的编程的拥护者经常认为,基于类的语言鼓励一种首先关注分类和类之间关系的开发模型。相比之下,基于原型的程序设计被视为鼓励程序员关注一组示例的行为,然后才担心将这些对象分类为原型对象,然后以类似于类的方式使用。” 这并不是说原型范式完全有优点,没有缺点。如果OO更具限制性,那是因为它选择如此。我可以看到,如果你不小心,所有这些灵活性可能会给你带来麻烦。 |
![]() |
2
3
原型是一种继承形式,只是对象直接从其他对象继承属性和行为,而不是从继承自其他类的类中获取属性和行为。 例如,在 prototype based language 例如,JavaScript。 |
![]() |
3
1
对于那些感兴趣的人来说, NewtonScript 曾经(现在)是一门双语:你有原型,也有课程。您可以选择是从类、原型还是两者继承。 |
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 4 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 4 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 4 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 5 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 5 月前 |