คำถามติดแท็ก prototypal-inheritance

3
ความแตกต่างของขอบเขตมรดกต้นแบบ / ต้นแบบใน AngularJS คืออะไร?
อ้างอิง API หน้าขอบเขตพูดว่า: ขอบเขตสามารถสืบทอดจากขอบเขตพาเรนต์ ผู้พัฒนาคู่มือหน้าขอบเขตพูดว่า: ขอบเขต (ต้นแบบ) สืบทอดคุณสมบัติจากขอบเขตพาเรนต์ ดังนั้นขอบเขตของลูกจะสืบทอดต้นแบบจากขอบเขตหลักเสมอหรือไม่? มีข้อยกเว้นหรือไม่ เมื่อมันรับช่วงมันจะสืบทอดมรดกต้นแบบ JavaScript ปกติหรือไม่

29
__proto__ VS. ต้นแบบใน JavaScript
รูปนี้แสดงให้เห็นอีกครั้งว่าทุกวัตถุมีต้นแบบ ฟังก์ชั่นตัวสร้างฟูยังมีของตัวเอง__proto__ซึ่งเป็น Function.prototype และในทางกลับกันยังอ้างอิงผ่าน__proto__คุณสมบัติของมันอีกครั้งเพื่อ Object.prototype ดังนั้นซ้ำ Foo.prototype เป็นเพียงคุณสมบัติที่ชัดเจนของ Foo ซึ่งหมายถึงต้นแบบของวัตถุ b และ c var b = new Foo(20); var c = new Foo(30); อะไรคือความแตกต่างระหว่าง__proto__และprototype? รูปที่ถูกนำมาจากdmitrysoshnikov.com

8
เหตุใดการขยายวัตถุพื้นเมืองจึงเป็นการปฏิบัติที่ไม่ดี
ผู้นำความคิดเห็นของ JS ทุกคนกล่าวว่าการขยายวัตถุพื้นเมืองเป็นแนวทางปฏิบัติที่ไม่ดี แต่ทำไม? เราได้รับความนิยมหรือไม่? พวกเขากลัวว่าจะมีใครบางคนทำ "ผิดวิธี" และเพิ่มประเภทที่อธิบายได้เพื่อObjectทำลายลูปทั้งหมดบนวัตถุใด ๆ หรือไม่? ใช้TJ Holowaychuk 's should.jsตัวอย่างเช่น เขาเพิ่ม getter ง่ายไปObjectและทุกอย่างทำงานได้ดี ( แหล่งที่มา ) Object.defineProperty(Object.prototype, 'should', { set: function(){}, get: function(){ return new Assertion(Object(this).valueOf()); }, configurable: true }); สิ่งนี้สมเหตุสมผลจริงๆ ตัวอย่างเช่นเราสามารถขยายArrayได้ Array.defineProperty(Array.prototype, "remove", { set: function(){}, get: function(){ return removeArrayElement.bind(this); } }); var arr = …

4
เหตุใดจึงใช้ Object.prototype.hasOwnProperty.call (myObj, prop) แทน myObj.hasOwnProperty (prop)
ถ้าฉันเข้าใจอย่างถูกต้องแต่ละวัตถุใน JavaScript จะสืบทอดมาจาก Object ต้นแบบซึ่งหมายความว่าแต่ละวัตถุใน JavaScript สามารถเข้าถึงฟังก์ชัน hasOwnProperty ผ่านสายโซ่ต้นแบบได้ ในขณะที่อ่านซอร์สโค้ดของRequireJSฉันสะดุดกับฟังก์ชันนี้: function hasProp(obj, prop) { return hasOwn.call(obj, prop); } hasOwnObject.prototype.hasOwnPropertyมีการอ้างอิงถึง มีความแตกต่างในทางปฏิบัติในการเขียนฟังก์ชันนี้เป็น function hasProp(obj, prop) { return obj.hasOwnProperty(prop); } และเนื่องจากเราอยู่ที่นั่นทำไมเราถึงกำหนดฟังก์ชันนี้เลย? เป็นเพียงคำถามเกี่ยวกับทางลัดและการแคชการเข้าถึงคุณสมบัติในเครื่องเพื่อเพิ่มประสิทธิภาพการทำงาน (เล็กน้อย) หรือฉันพลาดกรณีใด ๆ ที่อาจใช้ hasOwnProperty กับวัตถุที่ไม่มีวิธีนี้หรือไม่?

11
ตัวอย่างที่ดีของการสืบทอดต้นแบบของ JavaScript
ฉันเขียนโปรแกรมด้วยภาษา OOP มานานกว่า 10 ปีแล้ว แต่ตอนนี้ฉันกำลังเรียนรู้ JavaScript และนี่เป็นครั้งแรกที่ฉันได้พบกับการสืบทอดจากต้นแบบ ฉันมักจะเรียนรู้ได้เร็วที่สุดโดยการศึกษาโค้ดที่ดี อะไรคือตัวอย่างของแอปพลิเคชัน JavaScript (หรือไลบรารี) ที่ใช้การสืบทอดต้นแบบอย่างถูกต้อง และคุณสามารถอธิบาย (สั้น ๆ ) ได้อย่างไรว่าใช้การถ่ายทอดทางพันธุกรรมของต้นแบบอย่างไร / ที่ไหนฉันจึงรู้ว่าจะเริ่มอ่านได้ที่ไหน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.