2013-01-10 18 views
5

Olası Çoğalt: developer.mozilla.org at JavaScript docs yılında
What it the significance of the Javascript constructor property?Javascript'te bir sınıfın 'prototype.constructor' özelliğini ayarlamak ne zaman gereklidir?

, miras konusuyla ilgili

// inherit Person 
Student.prototype = new Person(); 

// correct the constructor pointer because it points to Person 
Student.prototype.constructor = Student; 

Ben niye acaba bir örnek var Prototipin kurucu özelliğini burada günceller miyim?

cevap

2

Her fonksiyonu, prototype nesne tek özelliği constructor (bir işleve kendisi işaret) vardır (bunu tanımlamanız olmasa bile) bir prototype özelliğine sahiptir. Yaptığın Dolayısıyla sonra prototype ait Student.prototype = new Person();constructor mülkiyet Person fonksiyon üzerindeki işaret ediyor, bu nedenle sıfırlamak gerekir. Sen büyülü bir şey olarak prototype.constructor almamaları gerektiğini

, bir işleve sadece bir işaretçi bu. Satır Student.prototype.constructor = Student; hattını atlasanız bile new Student(); satırında olması gerektiği gibi çalışacaktır.

constructor özellik yararlıdır, örneğin bir

var st = new Student(); 
... 
var st2 = st.constructor(); 

yüzden prototype.constructor() doğru olduğundan emin olmak için daha iyidir: (nesneyi klonlamak gerekir ama bunu yaratmıştı hangi işlevi tam olarak bilmiyorum) aşağıdaki durumlarda.

+0

'var ST2 = st.constructor();' new' anahtar kelimeyi kaçırır. Var olmalıdır var st2 = new st.constructor(); ' – golem

İlgili konular