Javascript 对象函数作为参数传递,如何访问该函数中的父对象?
我有以下情况:Javascript 对象函数作为参数传递,如何访问该函数中的父对象?,javascript,object,this,Javascript,Object,This,我有以下情况: 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”对象,因此如何在
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”对象,因此如何在传递的函数中获取父对象。您可以像这样创建
dog
:
function dog()
{
var name = 'Lumpy';
this.getName = function() {
return name;
}
}
这将创建一个闭包,允许您getName
始终能够访问name
如果您希望狗名对您的对象“公开”,您可以使用:
var name = 'Lumpy';
this.name = name;
另一个解决方案是使“右”此
对象始终可用于getName
函数:
var dogObj = this;
this.name = 'Lumpy';
this.getName = function() {
return dogObj.name;
}
您可以像这样创建
dog
:
function dog()
{
var name = 'Lumpy';
this.getName = function() {
return name;
}
}
这将创建一个闭包,允许您getName
始终能够访问name
如果您希望狗名对您的对象“公开”,您可以使用:
var name = 'Lumpy';
this.name = name;
另一个解决方案是使“右”此
对象始终可用于getName
函数:
var dogObj = this;
this.name = 'Lumpy';
this.getName = function() {
return dogObj.name;
}
试试这个:
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);
试试这个:
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);
你的类在一个地方被称为
dog
,在另一个地方被称为dog
。你的类在一个地方被称为dog
,在另一个地方被称为dog
。让它成为var name
,你真的不希望它是全局的,是吗?;-)让它成为var name
,你真的不希望它是全局的,是吗?;-)谢谢,我知道我知道JSFIDLE的存在;-)谢谢,我知道我知道JSFIDLE的存在;-)