设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2466|回复: 9
打印 上一主题 下一主题

[有事请教] 为什么重写Game_Action.prototype.itemEffectGrow函数不行

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
帖子
92
跳转到指定楼层
1
发表于 2018-5-6 13:30:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x

重写函数

JAVASCRIPT 代码复制
  1. var Game_Action_itemEffectGrow =Game_Action.prototype.itemEffectGrow;
  2.  
  3. Game_Action.prototype.itemEffectGrow = function() {  
  4.     Game_Action_itemEffectGrow.call(this);  
  5.  
  6.  
  7. };



原函数
JAVASCRIPT 代码复制
  1. //项目效果生长
  2. Game_Action.prototype.itemEffectGrow = function (target, effect) {
  3.     //目标 增加参数( 效果 数据id , 数学 向下取整( 效果 值1)   )
  4.     target.addParam(effect.dataId, Math.floor(effect.value1));
  5.     //制作成功 (目标)
  6.     this.makeSuccess(target);
  7. };




按理来说应该重写后还是调用原来的代码的  为什么会报错呢

Lv3.寻梦者

梦石
0
星屑
1239
在线时间
898 小时
注册时间
2014-12-4
帖子
379
2
发表于 2018-5-6 15:02:01 | 只看该作者
参数漏了啊 少年
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4583
在线时间
1205 小时
注册时间
2016-4-7
帖子
982

开拓者

3
发表于 2018-5-6 15:06:34 | 只看该作者
除了上边说的 js中必须明确用 return 指出返回值
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3399
在线时间
461 小时
注册时间
2013-12-7
帖子
333
4
发表于 2018-5-6 15:31:24 | 只看该作者
Game_Action_itemEffectGrow.call(this);  
改成
Game_Action_itemEffectGrow.apply(this, arguments);
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3399
在线时间
461 小时
注册时间
2013-12-7
帖子
333
5
发表于 2018-5-6 15:38:19 | 只看该作者
我不得不说,你得注释颇具喜感。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
帖子
92
6
 楼主| 发表于 2018-5-6 17:47:06 | 只看该作者
ekmomo 发表于 2018-5-6 15:38
我不得不说,你得注释颇具喜感。

这个不是我注释的  是我下载别的大佬 机译的 原文件
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
帖子
92
7
 楼主| 发表于 2018-5-6 17:50:16 | 只看该作者
本帖最后由 风之竹 于 2018-5-6 17:57 编辑
ekmomo 发表于 2018-5-6 15:31
Game_Action_itemEffectGrow.call(this);  
改成
Game_Action_itemEffectGrow.apply(this, arguments);


大佬apply 和all  什么区别啊
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1410
在线时间
183 小时
注册时间
2017-1-29
帖子
92
8
 楼主| 发表于 2018-5-6 17:55:26 | 只看该作者
本帖最后由 风之竹 于 2018-5-6 17:58 编辑
ekmomo 发表于 2018-5-6 15:38
我不得不说,你得注释颇具喜感。





大佬像这种原函数带需要参数的  是不是 重写再调用的时候都要加上,apply(this,arguments)而不是,all(this)吗
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3399
在线时间
461 小时
注册时间
2013-12-7
帖子
333
9
发表于 2018-5-6 18:08:56 | 只看该作者
本帖最后由 ekmomo 于 2018-5-6 18:10 编辑

是call不是all。
这俩都是改变this指向用得,你可以理解为把代码复制到这里来。
作用一摸一样,就是写法不一样。call第二个形参及以后是原函数的参数,而apply只接受两个参数,第一个是this指向,第二个是以数组的形式传递原函数参数。而arguments是绝大部分函数本身都有的一个伪数组(Function自带的,它里面就是各个实参),所以写apply(this,arguments)更方便,也不容易出错。

综上,是的,带参数的都推荐这么写。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-28 19:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表