RPGMAKER游戏引擎基于JavaScript的插件制作(五)——重写方法(二):call函数,apply函数,覆盖式重写与复制式重写

本文详细介绍了RPGMAKER游戏引擎中使用JavaScript进行插件开发时的方法重写,包括call和apply函数的运用,覆盖式重写和复制式重写的区别及应用场景。通过示例解释了如何利用这些技术实现游戏功能的扩展和定制,如在游戏标题后添加副标题。

上一节我们大致了解了重写方法是什么概念,但是不要着急,你还需要知道如何用call函数和apply函数来减少你敲代码的工作量,以及不同场合需要使用哪些不同的重写模式。

5.1 call和apply

JavaScript中有一些函数是全局函数,是所有对象都可以调用的,其中call和apply就是这样的函数,它们一般在函数体中调用,可以很方便地完成方法复制。其调用方法如下:

//定义一个person1类,这个类有sayName方法可以输出它的name
person1={name:"孙悟空"}
p1=new person1;
person1.sayName = function () {
    alert(this.name);
}
p1.satName();    //输出“孙悟空”

//定义另外一个类person2
person2={name:"猪八戒"}
p2=new person2;
person2.sayName = function () {
    person1.sayName.call(this);   //将person1的方法在person2的方法中调用。
}
p2.sayName()  //输出“猪八戒"

可以看到,call函数就是复制方法,但是和单纯的复制又不一样,它可以将this指针转为当前函数体的this指针,原本在person1中this指针指向孙悟空,在person2中this指针就指向猪八戒。

稍微想一下就知道,这个函数和复制原函数函数体到新函数中实现功能是一样的,那为什么需要这种函数呢?
1.很多底层代码你很难找到它们放在哪,当是你只要知道它们的功能是什么,就可以用call函数快速复制,比如你想修好你的电脑,你很多时候并不需要辛辛苦苦学习电脑到底怎么运行,你只需要去买新的配件把坏的换下来就可以了,call和apply函数就提供了这种便利。
2.为了代码好看,并且层次更加清晰

call函数和apply函数区别在于传入实参的方式不同,call是一个一个传入,apply是以数组形式传入,apply函数在传入大量实参时比call函数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值