我正在学习 JavaScript 并编写了一个简单的演示,但失败了。你能帮我解释一下为什么 getName
不是一个函数吗?谢谢。
var newPerson = function(name) {
this.name = name;
getName: return function() {
return this.name;
}
};
var personOne = newPerson("Diego");
var personTwo = newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
最佳答案
看起来您正在尝试使用一些公开的方法返回一个对象。在那种情况下,这就是我会做的。
var newPerson = function (name) {
this.name = name;
var self = this;
return {
getName: function () {
return self.name
}
}
}
var personOne = new newPerson("Diego");
var personTwo = new newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
编辑:感谢 Pootie
或者你也可以这样做。
var newPerson = function (name) {
this.name = name;
this.getName = function () {
return this.name;
}
}
var personOne = new newPerson("Diego");
var personTwo = new newPerson("Gangelo");
console.log(personOne.getName()); // prints Diego
console.log(personTwo.getName()); // prints Gangelo
下次,使用 console.log() 而不是 document.write(),因为这样更容易调试。
关于JavaScript 对象和方法,但 getName 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37739958/