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很常見,但沒有跨越完全獨立的編譯/範圍單元時,您可以關閉。
一個你想要的東西和你認爲你不能得到的東西的例子會大大改善/澄清這個問題。 –