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,"男");

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,917评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,117评论 1 10
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,707评论 0 6
  • 继承 一、混入式继承 二、原型继承 利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承,这种实现继承的...
    magic_pill阅读 1,089评论 0 3
  • 在名导众多的美国娱乐圈,约翰·艾维森的名气并不大,然而他却是少数拿到奥斯卡最佳导演奖的导演。 1976年他导演的电...
    玩闹智造阅读 1,133评论 0 1