关闭

javascript中call函数笔记

标签: JavaScript
498人阅读 评论(0) 收藏 举报
分类:

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25805次
    • 积分:603
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:11篇
    • 译文:0篇
    • 评论:0条