js函数几种定义和调用的方式

一般有函数形式、方法形式、构造函数形式、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,"男");

你可能感兴趣的:(js函数几种定义和调用的方式)