簡體   English   中英

在JavaScript類中定義局部變量

[英]Define variables local to a JavaScript class

我們如何定義特定於JavaScript類范圍的變量?

在下面的這個小提琴中,我想定義一個名為name的變量,該變量特定於Person類。 我收到錯誤SyntaxError: missing : after property id

var Person = {
   var name = "Jake";
   printName: function()
   {
    document.getElementById("personName").val(this.name);
   }
};

Person.printName();

您錯誤地創建了Person並且val()不是JavaScript方法。 像下面一樣嘗試。

 var Person = { name: "Jake", printName: function() { document.getElementById("personName").value = this.name; } }; Person.printName(); 
 <input type="text" id="personName"> 

您在編寫代碼時遇到語法錯誤。

您已在嘗試使用完整的JavaScript語句(例如var name = "jake";Person定義為對象var name = "jake"; 對象采用鍵和值對。 因此,編寫塊的正確方法是:

var Person = {
   name: "Jake",
   printName: function() {
     document.getElementById("personName").value = this.name;
   }
};

Person.printName();

如果要創建人員的“類”,則要考慮的替代語法是:

function Person(name) {
  this.name = name;
  this.printName = function() {
    document.getElementById("personName").value = this.name;
  }
}

var jake = new Person("Jake");

jake.printName();

如果您有任何疑問,請告訴我!

您可以使用閉包來模擬私有屬性。

function createPerson() {
  var name = 'Jake';

  return {
    printName: function() {
      return name;
    }
  };
}

var person = createPerson();
console.log(person.printName); // prints 'Jake'
console.log(person.name); // prints undefined
console.log(name) // throws 'Undefined variable' error

如果您想使用jQuery:

var Person = {
  name: "Jake",
  printName: function() {
    $("#personName").val(this.name);
  }
};
Person.printName();

https://jsfiddle.net/zmyLwtc0/2/

* val()是Element對象的jQuery方法。 在JS中,我們改用屬性value

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM