面向对象JavaScript的好例子?

5

有没有人能指导我一些真实世界中的面向对象javascript?我正在从几本书中学习javascript的面向对象编程,但这些书中给出的所有示例都归结为dog对象继承自animal原型或类似情况。我真的想看到更实质性的内容。

我已经查看了jQuery和类似库(base,prototype),但我认为它们是冗长的示例。我正在寻找一个脚本,可以清楚地看到继承(经典或原型)的使用。

2个回答

5
学习面向对象的JavaScript的好的“现实世界”例子是实际研究一些JavaScript框架。其中一些支持并在其自己的框架代码中使用面向对象: 这些提供了很好的参考和编写面向对象JavaScript的各种策略。

嗨,感谢回复。刚刚下载了YUI并与查看jQuery库代码进行了比较,非常清楚库是如何工作的...我还可以看到Crockford的object()函数用于继承。 - Mike Rifgin
@elduderino,我从早期版本的YUI中学到了很多东西。所有这些框架都非常适合学习JavaScript中一些巧妙的技巧!而且Doug Corckford关于JavaScript的链接也是非常宝贵的! - naikus
+1:这真的是非常好的建议。我现在正在学习Javascript面向对象编程,我下载了以上所有内容作为参考库。 - Emanuel Landeholm

2

在我看来,JavaScript的原型机制非常有用,而传统的面向对象编程并不是必需的。

以一个实际的例子来说,考虑Google Maps v3 API。我们来实现一个新的OverlayView:

// 实现一个OverlayView //
MyOverlay.prototype = new google.maps.OverlayView();

// “构造函数” // function MyOverlay(position, node, map) { // 设置参数 // this.position = position; this.node = node; this.map = map; this.setMap(this.map); }

// 必须的onAdd函数 // MyOverlay.prototype.onAdd = function() { // 观察从OverlayView继承来的getPanes函数 // var panes = this.getPanes(); // bla bla // }

// 必须的draw函数 // MyOverlay.prototype.draw = function() { // bla bla // } // .. 其他函数 //

// 现在实例化一个对象 // var instance = new MyOverlay(position, node, map);

如果这对你不起作用,许多外部库(例如Prototype、Dojo、jQuery等)都提供了传统OOP的很好的解决方案。


没问题,这对我有效。"prototype"、"pseudo-classical" 和 "prototypal" 概念我都清楚,但是我不知道如何将它们引入我的代码中。 - Mike Rifgin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接