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函数的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的apply和call函数

====================================================== 注:本文源代码点此下载 =============================...

javaScript call 函数的用法说明

javaScript 中的 call() 是一个奇妙的方法,但也是一个让人迷惑的方法,先看一下官方的解释。 call 方法 请参阅 应用于:Function 对象 要求 版本 5.5...

javascript 函数中的apply()和call()方法。

ECMAScript 中的函数是对象,因此函数也有属性和方法,每个函数都包括两个属性length 和prototype,每个函数都包含有两个非继承而来的方法,apply()和call(),今天主要学习...

关于javascript的apply和call函数

1、关于javascript的apply和call函数 prototype.js中用了大量的apply和call函数,不注意会造成理解偏差。 官方解释:应用某一对象的一个方法,用另一个对象替换当前...

Javascript apply与call函数详解

一、apply1、apply的作用:委托或者代理一个方法 apply的作用,说白了,其实就是用来调用一个函数,并更改被调用函数的this所指向的对象的。我觉得其实apply就是委托或者代理。这句话看...

javascript基础(函数属性arguments,方法:call,apply)(二十)

1.函数属性arguments,方法:call,apply: /* * 除了this,在调用函数时,浏览器还传递了另一个隐含的参数 * 还有...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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