我開始學習JavaScript和jQuery,並且有一個我根本不理解的小JavaScript概念。這是關於職能,制定者和獲得者。這裏是代碼示例。正如你所看到的,當我點擊一個標記時,一個對話框窗體打開,我通過對話框窗體獲取數據,將它保存到兩個對象中(myHeader
和myContent
),最後使用它。Javascript + jQuery +實現getter和setter的函數
- 執行的第一個
console.log
是(1)
,它打印'hi'
。 - 第二個
console.log
是(2)
,它打印保存在對象myHeader
中的內容。 - 但
console.log
號碼(3)
,有時不打印任何東西,或打印undefined
。
我對JavaScript函數有什麼誤解?
$(function() {
$(".myMarkup").click(function() {
$("#dialog-form").dialog("open", function() {
console.log(myHeader.getContent()); //(3)
});
});
Header = function() {
var val='hi';
this.getContent = function() { return val; }
this.setContent = function(x) { val = x; }
};
Content = function() {
var val='hi';
this.getContent = function() { return val; }
this.setContent = function(x) { val = x; }
};
var myContent = new Content();
var myHeader = new Header();
console.log(myHeader.getContent()); //(1)
$("#dialog-form").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Modify": function() {
a = document.getElementById('name').value.toString();
b = document.getElementById('surname').value.toString();
myHeader.setContent(a);
myContent.setContent(b);
console.log(myHeader.getContent(a)); //(2)
},
}
)};
從文檔:http://api.jqueryui.com/dialog/#method-open-「open」方法不接受任何參數。我不明白'(3)'會如何到達 – 2013-02-23 01:10:44