javascript中call函数笔记

原创 2013年12月02日 13:49:01

首先在js中函数就是类同时也是类的构造函数也就是构造器函数。

那么call函数就是用来动态调用一个函数并且同时改变被调函数中this的指向,这种常见于js的OOP编程的继承中,如下面的示例:


定义一个人“类”并且执行人类的部分属性

function Person( name, gender ) {

this.name = name;

this.gender = gender;

}

当需要工人类的时候需要继承人类,那供人类和人类共同的特点是都有姓名和性别,此时就不需要重复为工人类定义姓名和性别属性只需要让

工人类继承人类则工人类就默认拥有了这两个属性,这里继承的时候就用到了call函数,如下:

function Worker( name, gender, job ) {

Person.call( this, name, gender );

this.job = job;

}

实例化工人类并且弹出工人类的名称:

var oW1 = new Worker('koma', 'm', 'phper');

alert( oW1.name ); //这里的结果是:koma


说明:

上面执行:Person.call( this, name, gender );的时候this是指向oW1的,那通过call方法来调用Person函数的时候call方法就动态的改变了

Person方法中this的指向,所以在Person方法中的this也是指向oW1的,所以这时就相当于给Worker中的this指定name和gender属性

这种方式就类似与OOP中的子类调用父类的构造方法,那在js中就称为:构造函数伪装

相关文章推荐

JavaScript中bind、call、apply函数用法详解

在给我们项目组的其他程序介绍 js 的时候,我准备了很多的内容,但看起来效果不大,果然光讲还是不行的,必须动手。前几天有人问我关于代码里 call() 函数的用法,我让他去看书,这里推荐用js 写服务...

JavaScript中bind、call、apply函数用法详解

在给我们项目组的其他程序介绍 js 的时候,我准备了很多的内容,但看起来效果不大,果然光讲还是不行的,必须动手。前几天有人问我关于代码里 call() 函数的用法,我让他去看书,这里推荐用js 写服务...

【前端攻城狮之路】JavaScript函数的apply方法与call方法浅析

JavaScript函数的apply方法与call方法浅析 首先,function是一个指向Function对象,函数名是一个指向函数的指针。那么在函数体内,就会有一个作用域,即this关键字。 th...

JavaScript之call() 、apply() 函数

使用如下两个方法,可以修改函数调用上下文,也就是this的值 apply() 函数.apply(对象, 函数需要参数列表,是一个数组)call() 函数.call(对象,arg1,arg2,ar...

JavaScript之call() 、apply() 、bind()函数

在看一段代码的时候,遇到了bind()函数,当时看到的时候有点懵了,不是特别理解这个函数的使用以及作用,于是查找了一些资料之后,终于明白了一些,在查资料的过程中,看到将这个函数与call()和appl...

javascript中函数的call和apply方法

012 //每一个函数都包含两个非继承而来的方法:call apply //call、apply方法 简单的用法:绑定一些函数 用于传递参数 调用 //他俩最简单的用途...

javaScript call 函数的用法说明

call 方法  请参阅  应用于:Function 对象  要求  版本 5.5  调用一个对象的一个方法,以另一个对象替换当前对象。  call([thisObj[,arg1[, ar...

JavaScript中的apply和call函数详解

注:本文转自 http://www.jb51.net/article/52416.htm         每个JavaScript函数都会有很多附属的(attached)方法,包括toStrin...

浅谈javascript函数中apply()和call()方法的用途和异同

JavaScript的函数是对象,因此有属性和方法。每个函数都包含两个属性:length和prototype,每个函数都包含两个非继承而来的方法:apply()和call()。 今天先来介绍一下...

javaScript call 函数的用法说明

javascript的call方法,这篇还稍微看懂了点,分享下 JavaScript 中的 call() 是一个奇妙的方法,但也是一个让人迷惑的方法,先看一下官方的解释。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript中call函数笔记
举报原因:
原因补充:

(最多只允许输入30个字)