JavaScriptでオブジェクトを理解しようとしています。今、私はオブジェクトのさまざまな用途を見ており、それらを区別することはできません。
まず第一に、私が知りたい最大のことは、これら2つの違いは何ですか
Something.prototype.else = function(){
return 6;
}
そして
Something.else = function(){
return 6;
}
どちらも見た目は異なりますが、同じように使用されているか、間違っていますか。
回答:
回答№1は4他のプログラミング言語に精通している場合は、2番目のメソッドを静的メソッドと見なすことができます。
最初のオブジェクトを使用するには、オブジェクトのインスタンスが必要です。
var x = new Something();
x.else();
2番目のインスタンスは、使用するためにインスタンスを必要としません。
Something.else();
回答№2の場合は1
それは、確かにJavaScriptの仕事の面接に適した質問です。
違いは、 Something.else
オーバーライド Something.prototype.else
。つまり、両方がある場合、 Something.else
使用されます。
プロトタイプを持つことの利点は、多くのオブジェクト間でプロトタイプを共有して、メモリ使用量を減らし、モンキーパッチを簡単にし、プロトタイプベースの継承を実装できることです。