私はクロージャで達成できるものと、Javascriptでコンストラクタで達成できるものとの間に重大なオーバーラップがあると考えていますが、それにもかかわらずAPIでは若干の違いがあります。Javascript。クロージャと動的な 'this'バインディングとの違いは何ですか?
このコード:
function Animal1(name) {
this.name = name;
};
var x = new Animal1('x');
console.log(x.name); // x
は、機能的に、このコードと非常によく似ているようだ:
そのXを除いては、__proto__
プロパティが割り当てられます。あなたのコードでプロトタイプの継承を使用しない場合は、上記のようなクロージャとコンストラクタの間でどのように選択しますか?
つまり、より多くのメモリが必要ですか?それはより効率的ですか?考慮すべき他のものはありますか?
- 現代のJSエンジンが作成した各オブジェクトの機能と同様の「コピー」を使用する場合、私は全然驚かない:
は、詳細については、以下を見てみましょう。 –
@JamesThorpeあなたはその証拠や情報源がありますか?今はちょうど投機のように聞こえる、彼らがそれをしたかどうかを見て非常に興味深いでしょう。 –
https://developers.google.com/speed/articles/optimizing-javascript – sheeldotme