存儲參數所提供的數據在哪裏?隱含地創建了var first
?一個對象構造函數,它在構造函數體內使用參數但沒有「vars」,數據在哪裏?
function Student(first){
this.getFirst = function(){
return first;
}
}
測試用:
var myStudent = new Student("ross");
console.log(myStudent);
//學生{getFirst =函數()}
console.log(myStudent.getFirst());
//羅斯
console.log(first);
//參考誤差,第一不定義
console.log(myStudent.first);
//未定義
for(var x in myStudent){ console.log(x); }
// getFirst
我的第二個問題是,如果我這些正確理解:
What happens with "var" variables inside a JavaScript Constructor?
「var」 variables, "this" variables and "global" variables - inside a JavaScript Constructor
...是getFirst
函數創建一個閉包並保存構造函數的參數值的狀態,如果我在構造函數中使用var first
ctor身體是否可以認爲是「封裝」?此外,任何內部函數保存在一個「封閉狀態」或僅僅是一個人的由內部函數引用的所有參數值?
非常感謝你對你的思念。這是我對S.O的第一個問題。但幾乎每天都會使用該網站作爲參考,所以非常感謝。我的編程知識是有限的,所以如果我使用了蹩腳的術語,請高興地澄清需要的地方。
函數中的'var'關鍵字「創建」一個變量,它的*範圍規則*與該函數的參數[variables]相同;反過來也是如此。 – 2012-10-31 03:00:02