3、函数的调用方式
(1)作为一个函数去调用
函数名+();(函数作为全局对象调用,会使this的值成为全局对象,使用window对象作为一个变量,容易造成程序崩溃!)
函数作为对象的方法调用,会使this的值成为对象的本身!
var myObject={
firstName:"John",
lastName:"Doe",
fullName:function(){
return this.firstName+""+this.lastName;
}
}
myObject.fullName(); //返回"John Doe"
//我们创建了一个对象myObject,意思是说myObject拥有函数。this对象,拥有js的代码,这里的this就是myObject对象、
(3)使用构造函数调用函数 (构造函数中的this没有任何值)
function myFunction(arg1,arg2){
this.firstName=arg1;
this.lastName=arg2;
}
var x=new myFunction("John","Doe");
x.firstName; //返回"John"
//构造函数调用会创建一个新的对象,新的对象会继承构造函数的属性和方法
(4)作为函数方法调用函数
(这种可以设置this的值,我可以返回不同this!)在js中函数是对象,是对象就有属性个方法,而call()和apply()是预定义的函数方法!这两个方法都可以调用函数,两个方法的第一个参数必须是对象的本身!
function myFuction(a,b){
return a*b;
}
myFuction.call(myObject,10,2); //20
function myFunction(a,b){
return a*b;
}
myArray=[10,2];
myFunction.apply(myObject,myArray); //20 //两个方法的区别在于,apply传的是一个参数数组,而call传的是普通的参数。
本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记。有不正确之处请各位高手多多指点,一起学习进步。【VX:czlingyun 暗号:CSDN】