我们如何定义特定于JavaScript类范围的变量?
在下面的fiddle中,我想定义一个名为name
的变量,该变量特定于类Person
。我收到错误SyntaxError: missing : after property id
var Person = {
var name = "Jake";
printName: function()
{
document.getElementById("personName").val(this.name);
}
};
Person.printName();
答案 0 :(得分:6)
您正在错误地创建Person
,val()
不是javascript方法。尝试以下。
var Person = {
name: "Jake",
printName: function() {
document.getElementById("personName").value = this.name;
}
};
Person.printName();

<input type="text" id="personName">
&#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
代替。