即時學習JavaScript和即時通訊試圖瞭解的關鍵差異。 我可以使用Object.create(someName)
創建對象,我可以使用 Object.create(someName.prototype)
創建對象,但我不太瞭解關鍵區別。 我應該把屬性作爲常規屬性嗎? 像someName.a
或someName.prototype.a
? 它對我來說有點混亂。 我明白,當使用Object.Create
即時定義我的對象原型鏈與對象即時指定,但我可以指定要麼someName
或someName.prototype
,但我似乎無法完全理解的差異和最佳做法。 非常感謝您的幫助。 :)Object.Create與Object.create(名稱)與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(parent)vs Object.create(parent.prototype)
- 2. Object.create vs
- 3. jqGrid 4.13.0錯誤與IE8 Object.create
- 4. Javascript object.create和isPrototypeOf
- 5. 瞭解Object.create
- 6. 的Object.create()和toString()
- 7. NodeJS中的Object.create
- 8. 用的Object.create
- 9. Object.create和init
- 10. 解釋Object.create(),新的
- 11. Object.create(null)的用例?
- 12. 的Object.create和繼承
- 13. JavaScript的繼承Object.create
- 14. 的Object.create和原型
- 15. Javascript Object.create做什麼?
- 16. 的Object.create()的原型
- 17. Object.create源碼解釋?
- 18. Object.create鏈接繼承
- 19. 的Object.create和私人
- 20. proto鏈接和Object.create
- 21. VAR B =的Object.create(一)與變種B = A
- 22. JavaScript Object.create樣式與現有對象
- 23. 錯誤:在的Object.create的JavaScript
- 24. 等效於Python的Object.create()
- 25. Object.create()未完全創建;
- 26. Javascript Object prototype and Object.create method
- 27. Javascript Object Object with assign&Object.create
- 28. 舊的IE的JavaScript Object.create
- 29. Object.create和內置對象
- 30. 使用的Object.create代替setPrototypeof
'someName'指的是一個對象,而'someName.prototype'指的是另一個對象,所以哪一個你應該使用Object.create()真的取決於你想要達到的目標。同樣,在'someName.a'或'someName.prototype.a'之間進行選擇取決於您想要實現的內容 - 如果您將屬性添加到原型,那麼具有該原型的* all *對象將有權訪問它,這是其他時間有助於幫助。 – nnnnnn
非常感謝! –