定义JavaScript类的本地变量

时间:2016-04-25 17:49:31

标签: javascript jquery

我们如何定义特定于JavaScript类范围的变量?

在下面的fiddle中,我想定义一个名为name的变量,该变量特定于类Person。我收到错误SyntaxError: missing : after property id

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

Person.printName();

4 个答案:

答案 0 :(得分:6)

您正在错误地创建Personval()不是javascript方法。尝试以下。



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

Person.printName();

<input type="text" id="personName">
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您编写代码的方式有语法错误。

您尝试使用Person等完整的JavaScript语句时,已将var name = "jake";定义为对象。对象采用键和值对。因此,编写块的正确方法是:

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

Person.printName();

如果你想创建一个&#34;类&#34;对于人,您要考虑的替代语法是:

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

var jake = new Person("Jake");

jake.printName();

如果您有任何疑问,请与我联系!

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

如果你想使用jQuery:

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

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

* val()是元素对象的jQuery方法。在JS中,我们使用属性value代替。