我想问一下我的以下 OOP 风格的优缺点。 我按以下方式编写我的 JS 类。
var MyClass = function() {
// private vars
var self = this,
_foo = 1,
_bar = "test";
// public vars
this.cool = true;
// private methods
var initialize = function(a, b) {
// initialize everything
};
var doSomething = function() {
var test = 34;
_foo = cool;
};
// public methods
this.startRequest = function() {
};
// call the constructor
initialize.apply(this, arguments);
};
var instance_1 = new MyClass();
var instance_2 = new MyClass("just", "testing");
这是一个好方法吗?有什么缺点吗? 我不使用继承,但是这样可以实现继承吗?
提前致谢。
最佳答案
我认为这是一个非常好的方法。不要为“无继承”问题感到羞耻。大多数 OOP 与继承无关。最重要的方面是封装和多态性,您已经掌握了它们。
可以争辩(嗯,我通常争辩)只有静态语言才需要继承,你必须以某种方式告诉编译器这两种类型(类)是相关的,它们有一些共同点(共同点祖先),以便它可以允许多态性。对于动态语言,OTOH,编译器不会关心,运行时环境会在没有任何继承的情况下找到共性。
另一点:如果您在某些地方需要一些继承(在某些情况下它很棒,例如 GUI),通常您会发现您可以轻松地在您的“简单”之间进行互操作' 对象/类,以及其他更复杂和更重的。 IOW:不要试图找到一个可以满足您所有需求的框架并将其用于所有事情;而是使用您每时每刻都感觉更舒服的那个,只要它有助于解决特定问题。
关于javascript - 这是做 JS OOP 的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1263112/