我有一个对象方法a
,如下所示:
var f = {
a: function(e){
e.call();
console.log(t); // Here should print “Hello world”
}
};
f.a(function(){
f.a.t = "Hello world";
// How to pass the string “Hello world” into the object method “a” ?
});
e
是一个匿名函数。我调用了e
,现在我想将字符串Hello world
传递给对象方法a
。如果不允许使用全局变量,我该如何将字符串传递给对象方法?
答案 0 :(得分:1)
您可能需要考虑更改e
的返回值,如下所示:
var f = {
a: function(e){
var t = e.call();//here declare variable t
console.log(t); // Here should print “Hello world”
}
};
f.a(function(){
return "Hello world";//directly return string value from anonymous function
// How to pass the string “Hello world” into the object method “a” ?
});

答案 1 :(得分:0)
见下面的代码段
var f = {
a: function(e){
e.call();
console.log(f.a.t); // Here should print “Hello world”
}
};
f.a(function(){
f.a.t = "Hello world";
// How to pass the string “Hello world” into the object method “a” ?
});

答案 2 :(得分:0)
什么是t
的范围?如果它是f
的属性,请写下:
var f = {
a: function(e){
e.call();
console.log(this.t); // this line changed
}
};
f.a(function(){
f.t = "Hello world"; // this line changed
});
答案 3 :(得分:0)
为什么不在对象中定义属性,如:
var f = {
t: '',
a: function(e){
e.call();
console.log(this.t); // Here should print “Hello world”
}
};
f.a(function(){
f.t = "Hello world";
});
答案 4 :(得分:0)
如果您想在e
的上下文中致电f
,那么您需要将f
传递给call
,写e.call()
将等于e()
。
除此之外t
指的是变量,而不指t
的属性a
。您不能以这种方式设置变量,但可以将其存储在对象f
你会这样写。
var f = {
a: function(e){
e.call(this);
console.log(this.t);
}
};
f.a(function(){
this.t = "Hello world";
});
答案 5 :(得分:0)
f是java脚本对象,你可以添加属性。我刚刚添加了f.t =" Hello world"。你可以在程序的任何地方使用f.t。
var f = {
a: function(e){
e.call();
console.log(f.t); // Here should print “Hello world”
}
};
f.a(function(){
f.t = "Hello world";
// How to pass the string “Hello world” into the object method “a” ?
});