我有这个代码:
function Person(name){
var self = this;
this.name = name;
function hello(){
alert("hello " + self.name);
}
return {
hello: hello
};
}
var newPerson = new Person("john");
newPerson.hello();
我希望能够使用“this”关键字访问“hello”函数中的“name”属性;我想要一个替代使用“自我”变量的方法。
除了使用 jquery 的 $.proxy 函数来控制上下文之外,我如何编写相同的代码但没有变量'self'?
我想要一个如下所示的代码,但当我调用“newPerson.hello()”时,“名称”总是“未定义”。我不知道为什么,因为我一直认为函数的范围始终是调用者点左侧的对象,在这种情况下,它是“newPerson”,在创建时被赋值为“john”物体。
function Person(name){
this.name = name;
function hello(){
alert("hello " + this.name);
}
return {
hello: hello
};
}
var newPerson = new Person("john");
newPerson.hello();
谢谢你。