Functionタイプ
3194 ワード
javascript 。 / 。 。 、 , , 。
function add(x,y){return x+y; }function add ,
(x,y) , , 。 , , , undefined
{} , , 。
javascript , ' ' 。 ‘’ ‘’。
, this arguments。
arguments 。 callee , , arguments 。
this 。javascript 4 : 、 、 、apply 。
var context1=1;
var methodCall={context1:2};
function test(){
var context1=5
alert(this.context1)
}
test()// 1
window.context1=5;
contest1 //5 context1 window
// test(), 。this window window.context1
// ,this , , 。
// , , this
var methodCall={color:'red'}
methodCall.testInner=function(){
function test(){
alert(this.color);
}
test();
}
methodCall.testInner() //undefined this , this
var methodCall={color:'red'}
methodCall.testInner=function(){
var that=this;
function test(){
alert(that.color);
}
test();
}
methodCall.testInner() //red that this
var context1=1;
var methodCall={context1:2};
function test(){
alert(this.context1)
}
methodCall.test=test
methodCall.test() //2
// ,
// ,this ,
this , 。
apply
// 。this ,this , 。
var methodCall={color:'red'}
methodCall.testInner=function(){
var that=this;
function test(){
alert(that.color);
}
test.apply(methodCall);// this windon。 apply , methodCall。
}
methodCall.testInner() //red
this
var name='The Window';
var object={
name:'My Object',
sayName:function(){
return function(){
return this.name;
}
}
}
object.sayName()() // The Window this arguments, , , ,
。this window。
object.sayName().call(object) // My Object // call apply this
var name='The Window';
var object={
name:'My Object',
sayName:function(){
var that=this;
return function(){
return that.name;
}
}
}
object.sayName()() //my Object // this that, , ,this object,
that, 。
・