คำถามติดแท็ก object-create

10
ทำความเข้าใจกับความแตกต่างระหว่าง Object.create () และ SomeFunction ใหม่ ()
ฉันเพิ่งสะดุดกับObject.create()วิธีการใน JavaScript และฉันพยายามที่จะอนุมานว่ามันแตกต่างจากการสร้างตัวอย่างใหม่ของวัตถุด้วยnew SomeFunction()และเมื่อคุณต้องการใช้หนึ่งเหนืออื่น ๆ ลองพิจารณาตัวอย่างต่อไปนี้: var test = { val: 1, func: function() { return this.val; } }; var testA = Object.create(test); testA.val = 2; console.log(test.func()); // 1 console.log(testA.func()); // 2 console.log('other test'); var otherTest = function() { this.val = 1; this.func = function() { return this.val; }; }; …

4
การสืบทอด JavaScript: Object.create vs new
ใน JavaScript ความแตกต่างระหว่างสองตัวอย่างนี้คืออะไร: วิชาบังคับก่อน: function SomeBaseClass(){ } SomeBaseClass.prototype = { doThis : function(){ }, doThat : function(){ } } ตัวอย่างการสืบทอด A โดยใช้ Object.create: function MyClass(){ } MyClass.prototype = Object.create(SomeBaseClass.prototype); ตัวอย่างการสืบทอด B โดยใช้คำหลักใหม่ function MyClass(){ } MyClass.prototype = new SomeBaseClass(); ทั้งสองตัวอย่างดูเหมือนจะทำในสิ่งเดียวกัน คุณจะเลือกอย่างใดอย่างหนึ่งเมื่อใด คำถามเพิ่มเติม: พิจารณาโค้ดในลิงค์ด้านล่าง (บรรทัดที่ 15) ซึ่งการอ้างอิงถึงคอนสตรัคเตอร์ของฟังก์ชันจะถูกเก็บไว้ในต้นแบบ เหตุใดจึงมีประโยชน์ https://github.com/mrdoob/three.js/blob/master/src/loaders/ImageLoader.js ข้อความที่ตัดตอนมา (หากคุณไม่ต้องการเปิดลิงก์): …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.