2011-06-16 90 views
2

完全糊塗了:語句返回undefined

function Person(){ 

var age = 28; 

} 


$(document).ready(function(){ 


    var myPerson = new Person(); 

    console.log(myPerson.age); 


}); 

返回undefined。爲什麼?我已經清楚地設置了Person函數構造器中的變量,myPerson的.prototype應該指向哪個變量,不是嗎?

+0

不,它只是一個局部變量都將丟失,一旦構造函數返回,除非你捕捉整個範圍與嵌套函數... – 2011-06-16 12:44:03

+1

'變種age'僅創建該函數的局部變量。它不會將屬性設置爲'new Person'返回的對象。 – 2011-06-16 12:44:59

回答

10

試試這個:

function Person(){ 

    this.age = 28; 

} 


$(document).ready(function(){ 


    var myPerson = new Person(); 

    console.log(myPerson.age); 


}); 
+0

真棒我現在看到爲什麼我需要使用'this'(因爲它指向使用新關鍵字時創建的通用對象)..謝謝:-) – Exitos 2011-06-16 13:15:05