1
在Javascript中,您可以通过对象原型获得继承,也可以通过封闭将封装返回到要公开的位。有什么办法可以同时使用两种方法吗?如果是这样,那将会是一个好方法呢?Javascript中的封装和继承
在Javascript中,您可以通过对象原型获得继承,也可以通过封闭将封装返回到要公开的位。有什么办法可以同时使用两种方法吗?如果是这样,那将会是一个好方法呢?Javascript中的封装和继承
下面是一个例子:
function Base(thing) {
this.getThing = function() {
return thing;
};
}
Base.prototype.cappedThing = function() {
return this.getThing().toUpperCase();
};
function Derived(thing) {
Base.call(this, thing);
}
Derived.prototype = Object.create(Base.prototype);
var d = new Derived("foo");
console.log(d.cappedThing()); // "FOO", through inheritance and encapsulation
但如果问题是真的:是否JavaScript的有像“保护”在各种基于类的语言(可为“子类”的方法,但不能直接当你什么实例化基类),那么答案是否定的,不是。如果基础和派生是在共享的但私有的范围中定义的,甚至当ES6的Name
objects很常见,但没有跨越完全独立的编译/范围单元时,您可以关闭。
一个你想要的东西和你认为你不能得到的东西的例子会大大改善/澄清这个问题。 –