一般有函数形式、方法形式、构造函数形式、apply及call模式
Title
//函数的几种调用形式
//一般调用形式
function func(){
alert("hello world");
}
func();
//使用函数表达式定义函数,然后调用
var func=function(){
alert("hello world");
};
func();
//以上两种都是函数的简单调用模式,关键是函数里的this关键字指代window对象
var func=function(){
alert(this);
}
func();//打印出[object,window]
//方法调用模式
var func=function(){
alert(this);//这里的this对象指的是对象o
};
//将其赋值给一个对象
varo = { };
o.fn=func;//注意這裏不要加圆括号,o.fn是一个方法
func();
o.fn();
//构造器调用模式
var Person=function(){
this.name="程序员";//这里必须用this引导
this.sayHello=function(){
alert("你好,这里是"+this.name);
}
}
//调用构造器,创建对象
var p =newPerson();
p.sayHello();
//apply调用模式 ,apply的语法函数名.apply(对象,参数数组)
var func1=function() {
this.name="程序员";
};
func1.apply(null);//相当于函数调用
alert(name);
var func2=function(){
this.name="程序员";
};
var o = {};
func2.apply(o);//相当于方法调用
alert(o.name);
//call与apply的最大的区别,call模式与apply模式最大的不同在于call中的参数不是数组
//定义方法
var func=function(name,age,sex){
this.name= name;
this.age= age;
this.sex= sex;
};
//创建对象
var o = {};
var p1 =func.apply(o,["nanlan",19,"男"]);
var p2 =func.call(o,"xiaoju",19,"男");