定义 JavaScript 类的局部变量

Define variables local to a JavaScript class

本文关键字:局部变量 JavaScript 定义      更新时间:2023-09-26

我们如何定义特定于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">

可以使用闭包来模拟私有属性。

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 Object 的 jQuery 方法。在JS中,我们改用属性value

您在编写代码的方式中存在语法错误。

您已将Person定义为对象,同时尝试使用完整的 JavaScript 语句,如 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();

如果您有任何问题,请告诉我!