javascript函数调用的4种方式

this关键字,指代函数执行时的当前对象;

1,作为一个函数调用:

function myFunction(a,b){

    return a*b;    

     // return this;  // 返回window对象

}

myFunction(3,4);  // 12

当前的this,是全局的,属于window对象,window.myFunction()   //  12

这种常用的方式,但是不是良好的编程习惯,全局变量,方法和函数,容易造成命令冲突的bug;


2,函数作为方法调用:

var myObject={

    firstName:"zeng",

    lastName:"fanfan",

    fullName:function(){

        return this.firstName+" "+this.lastName;

        return this;  // [object,object] (所有者对象)

    }

}

myObject.fullName();  // zeng fanfan 


3:使用构造函数调用函数:

function myFunction(arg1,arg2){

    this.firstName=arg1;

    this.lastName=arg2;

}

var x=new myFunction("zeng","fanfan");

x.firstName;    //返回 zeng


4,作为函数方法调用函数;

  :  call() 和 apply() 是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身。

var myObject;

function myFunction(a,b){

    return a*b;

}

myObject=myFunction.call(myObject , 3 , 4);  //返回 12

或:

function myFunction(a,b){

       return a*b;

}

 var myArray=[3,4];

var myObject=myFunction.apply(myObject . myArray)  //返回12    


你可能感兴趣的:(javascript)