假设有一个类机器人。
有变量hand lefthand、hand righthand、leg leftleg和leg rightleg。leg和hand类包含int length和int width。
this.lefthand.length = 100;
this.leftleg.length = 200;
function switch_length () {
this.lefthand.length = 300; //This is wrong. So what can I do instead to refer to lefthand??
this.leftleg.length = 400; //This is wrong. So what can I do instead to refer to leftleg??
}
this.button.addEventlistener ( ... switch_length())发布于 2012-02-12 14:15:37
在Javascript中,您可以定义被调用函数的上下文。我更擅长用例子来解释这一点,所以它是这样的:
var something = {
'foobar': 'var 1 value',
'foo': function () {
alert(this.var1);
}
}
var something_else = {
'foobar': 'some completely other value'
}
function bar () {
alert(this.foobar);
}
something.foo(); //alerts 'var 1 value'
bar(); //produces an error
bar.call(something); //alerts 'var 1 value'
bar.call(something_else); //alerts 'some completely other value'function.call(context, [arg1, [arg2, [...]]]);
如果这已经回答了你的问题,请务必接受我的回答。
编辑:这是另一个例子
function create () {
return {
'hand': {
'length': 100
},
'leg': {
'length': 100
}
}
}
function set_length(hand, leg) {
this.hand.length = hand;
this.leg.length = leg;
}
var left = create(),
right = create();
set_length.call(left, 200, 300);
set_length.call(right, 50, 150);https://stackoverflow.com/questions/9242236
复制相似问题