我开始学习 JavaScript 和 jQuery,有一个小的 JavaScript 概念我完全不明白。它是关于函数、setter 和 getter 的。这是代码示例。
如您所见,当我单击标记时,会打开一个对话框表单,我通过对话框表单获取数据,将其保存到两个对象(myHeader
和myContent
)中,最后使用它。
- 第一个
console.log
执行的是(1)
,它打印'hi'
. - 第二个
console.log
是(2)
,它打印保存到对象中的内容myHeader
。 - 但是
console.log
number(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)
},
}
)};