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,                        。