有人能指出一些真实世界面向对象的javascript的正确方向吗?我正在从几本书中学习用于javascript的OO,但是这些书中给出的所有例子都归结为从动物原型或类似物继承的狗对象。我真的希望看到一些更实质的东西。
我看过jQuery和类似的库(base,prototype),但我认为它们是冗长的例子。我正在寻找一个脚本,我可以清楚地看到正在使用的继承(经典或原型)。
答案 0 :(得分:5)
学习OO javascript的好“真实世界”示例是实际学习一些javascript框架。其中一些人在他们自己的框架代码中支持和使用OO:
这些为编写OO javascript提供了很好的参考和各种策略。
答案 1 :(得分:2)
IMO,javascript的原型非常有用,而且不需要经典的OOP。
作为一个真实的例子,请考虑google maps v3 api。让我们实现一个新的OverlayView:
// implement an OverlayView //
MyOverlay.prototype = new google.maps.OverlayView();
// the "constructor" function //
function MyOverlay(position, node, map) {
// set the parameters //
this.position = position;
this.node = node;
this.map = map;
this.setMap(this.map);
}
// required onAdd function //
MyOverlay.prototype.onAdd = function() {
// observe the getPanes function inherited from OverlayView //
var panes = this.getPanes();
// bla bla //
}
// required draw function //
MyOverlay.prototype.draw = function() {
// bla bla //
}
// .. other functions //
// now instantiate an object //
var instance = new MyOverlay(position, node, map);
如果这对您不起作用,许多外部库(例如Prototype,dojo,jquery等)都为经典OOP提供了很好的解决方案。