问题是从语言设计的 Angular 来看的。
我应该解释一下这种情况。我正在研究一个不支持原型(prototype)的javascript变体,但是它已经过期了一个体面的类型系统(最重要的是支持instanceof)。 ecmascript规范并不重要,因此我可以自由地实现不同且更适合的功能。
在变体中:-
function foo()
声明构造函数,而是在模板文件中声明构造函数,这意味着构造函数存在于命名空间中(由文件路径指定)从来没有做过网络开发人员,这使我处于从未使用过原型(prototype)而愤怒的状态。尽管这并没有阻止我对此发表意见。
据我了解,原型(prototype)模型的主要问题是
obj.shared.foo()
会更直接。特别是它是一个很大的实现难题因此,要解决这些问题,我的想法是拥有一个特殊的运算符Constructors。基本上,原则是每个对象都有一个构造函数列表,有时您需要访问这些构造函数。
var x = new com.acme.X();
com.acme.Y(x,[]); // apply y
(constructorsof x) // [com.acme.Y,com.acme.X,Object];
x instanceof com.acme.X; // true
x instanceof com.acme.Y; // true
感谢所有反馈,我很欣赏我的观点可能很困难,因为我想传达很多东西,但是它的重要决定和专家意见可能非常宝贵。
谢谢,
麦克风
编辑:提案现在很有希望。
最佳答案
史蒂夫·耶格(Steve Yegge)就prototype model撰写了一篇很好的技术文章。
关于javascript - 从javascript的原型(prototype)模型可以学到什么教训?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/624924/