JavaScriptを学習していて、主な違いを理解しようとしています。 Object.create(someName)
でオブジェクトを作成することはできますが、 Object.create(someName.prototype)
で作成できますが、キーの違いをよく理解していません。 プロパティを通常のプロパティとして設定する必要がありますか? のようにsomeName.a
またはsomeName.prototype.a
? ちょっとわかりにくいです。 Object.Create
私のオブジェクトプロトタイプチェーンをオブジェクトimと指定して定義していますが、someName
またはsomeName.prototype
のいずれかを指定することができますが、違いとベストプラクティスを完全に理解しているようです。 ありがとうございました。 :)Object.create(name)vs Object.create(name.prototype)
0
A
答えて
0
Object.create
は、プロトタイプが関数全体の最初の引数として渡されたものである新しいオブジェクトを作成します。 JavaScriptで
、prototype
プロパティは特別な力との定期的なオブジェクトですが、私はすでに述べてきたように、それはまだ通常のオブジェクトです。
したがって、の質問はxまたはx.prototypeの場合、要件に応じて異なります。例えば
:
var obj = { name: "Matías" };
// This will create a new object whose prototype
// is the object contained in the "obj" variable
var obj2 = Object.create(obj);
実際には、オブジェクトは、prototype
財産を所有していません。あなたには、いくつかのコンストラクタ関数のプロトタイプからオブジェクトを作成したいときは、他のアプローチを使用します。
var A = function() {};
A.prototype.doStuff =() => {
// do stuff here
};
// A common mistake is to provide A instead of A.prototype.
// In JavaScript, even functions are objects, hence if you provide
// A instead of A.prototype, the prototype of the newly created object
// will be the function A and its members, not the ones that would be available
// creating an object like this: new A()
var B = Object.create(A.prototype);
B.doStuff();
var C = Object.create(A);
// Function "doStuff" is undefined!!
C.doStuff();
+0
ありがとうございました。 –
関連する問題
- 1. Object.create vs new
- 2. Object.create()メソッドとtoString()
- 3. object.createとchainingオブジェクト
- 4. JavaScriptのプロトタイプObject.create
- 5. オブジェクトリテラルの代わりにObject.create
- 6. Javascriptのobject.createとisPrototypeOfは
- 7. 明確化とObject.createパターン
- 8. Javascriptプロトタイプの継承とObject.create()?
- 9. protoリンクとObject.createの違い
- 10. Object.create({}):いいですか?
- 11. setterとObject.create()の使用。
- 12. Object.createを使用する利点
- 13. Object.create継承と初期化コード
- 14. 使用Object.createの代わりsetPrototypeof
- 15. Object.create()関数内で変数にアクセスできません
- 16. Object.create()を使用したXMLHttpRequestオブジェクトの作成
- 17. Object.createの列挙可能な引数は何ですか?
- 18. 複数のプロパティを持つObject.create()の略語
- 19. Javascriptのプライベート変数+ Object.create(クロージャ変数への参照)
- 20. どのように割り当てるかclass1.prototype = Object.create(class2.prototype)
- 21. JavaScriptのObject.create()のPythonに相当します。
- 22. Object.createと名前付きコンストラクタを持つプロトタイプOO
- 23. Object.createはie8でサポートされていません
- 24. どのバージョンから、IEはObject.create(null)をサポートできますか?
- 25. Object.create()とプロトタイプチェーンに関するいくつかの問題?
- 26. &Object.createを使用したJavaScriptのオブジェクト構成
- 27. なぜObject.create()は冗長なのですか?
- 28. なぜconsole.log()はObject.createの継承プロパティを表示しないのですか?
- 29. JavaScriptでObject.create()またはnewを使用する理由はありますか?
- 30. object.create(parentObject)と、親オブジェクトを子オブジェクトに割り当てるだけの違いは何ですか?
'someName' 1つのオブジェクトを指し、' someName.prototype'は、別のオブジェクトを参照するので、あなたが使用すべき1 'Object.create()'はあなたが達成しようとしているものに本当に依存します。同様に、 'someName.a'または' someName.prototype.a'の間の選択は、あなたが達成しようとしているものによって異なります。もしプロトタイプにプロパティを追加すると、そのプロトタイプを持つ* all *オブジェクトはそれにアクセスできます。時には役立ち、他には役に立たない。 – nnnnnn
ありがとうございます! –