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函数快速复制࿰

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【实例教程1】怎样编写一个插件? 1. 插件的注释与定义参数 2. 读取插件参数 3. 插件指令的实现 【实例教程2】制作一个启动画面 1. 从哪里开始? 2. 创建启动画面的场景类 【实例教程3】玩转菜单初级篇 1. 给各个菜单界面添加背景 2. 让背景滚动起来 3. 在主菜单界面增加自定义菜单:改名 4. 在主菜单界面移除菜单命令 5. 在主菜单界面增加一个自定义窗口 【实例教程4】玩转标题画面 1. 美化游戏标题 2. 让背景动起来 3. 自定义标题菜单 4. 美化菜单 【实例教程5】制作游戏:坦克大战(上) 1. 游戏结构及流程介绍 2. 相关素材资源的下载和使用 3. 基础知识:音效的播放 4. 基础知识:精灵表的切帧 5. 基础知识:使用MV中的动画 6. Scene_TankWarTitle类解析 7. Sprite_Bullet类解析 8. Sprite_Explode类解析 9. Sprite_Tank类解析 10. Sprite_Enemy类解析 11. Scene_TankWar类解析 12. Scene_TankWarGameOver类解析 【实例教程6】存档的加密解密与保护 1. 找出MV存档和读档的方 2. 制作MV存档的修改器 3. 如何保护存档? 4. 制作一个存档保护插件 【实例教程7】制作一个传送插件 1. 传送插件的主要功能 2. 将自定义数据保存到存档中 3. meta数据的使用 4. 使用地图备注登记传送点 5. 在插件中解析并记录传送点 6. 使用地图备注登记多个传送点并在插件中记录 7. 制作传送点选取窗口显示传送点数据 8. 将物品或技能标记为传送物品、传送技能 9. 显示传送动画实现传送功能 10. 禁止使用传送道具或传送技能 11. 实现插件命令

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值