javascript中call函数笔记

首先在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中就称为:构造函数伪装

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值