私は JavaScript と jQuery を学び始めていますが、まったく理解していない小さな JavaScript の概念があります。関数、セッター、ゲッターについてです。コード例を次に示します。
ご覧のとおり、マークアップをクリックすると、ダイアログ フォームが開きます。ダイアログ フォームからデータを取得し、それを 2 つのオブジェクト (myHeader
とmyContent
) に保存して、最後に使用します。
- 最初に
console.log
実行されるのは(1)
で、出力され'hi'
ます。 - 2 つ目
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)
},
}
)};