我有以下情况:
function dog()
{
this.name = 'Lumpy';
this.getName = function() {
return this.name;
}
}
function show_dog_name(dogname)
{
alert(dogname());
}
bigdog = new dog();
show_dog_name(bigdog.getName);
“this”不是指“dog”对象,所以如何在传递函数中获取父对象。
答案 0 :(得分:2)
var that = this;
this.getName = function() { return that.name; };
答案 1 :(得分:1)
您可以像这样创建dog
:
function dog()
{
var name = 'Lumpy';
this.getName = function() {
return name;
}
}
这会创建一个闭包,让getName
始终能够访问name
如果您希望狗名称对您的对象“公开”,您可以使用:
var name = 'Lumpy';
this.name = name;
另一种解决方案是让'{1}}函数始终可以使用“正确的”this
对象:
getName
答案 2 :(得分:1)
试试这个:
function dog(){
this.name = 'Lumpy';
var obj=this;
this.getName = function() {
return obj.name;
}
}
function show_dog_name(dogname){
alert(dogname());
}
bigdog = new dog();
show_dog_name(bigdog.getName);