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

Project1

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

[已经解决] 请问JS的alias咋写?

[复制链接]

Lv2.观梦者

梦石
0
星屑
719
在线时间
684 小时
注册时间
2009-5-29
帖子
461
跳转到指定楼层
1
发表于 2015-10-26 07:57:18 手机端发表。 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
JS没有类的方法,全方法继承倒是好弄,但是alias怎么写。。

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21584
在线时间
9407 小时
注册时间
2012-6-19
帖子
7117

开拓者短篇九导演组冠军

2
发表于 2015-10-26 08:23:13 | 只看该作者
  1. var alias_method_name = old_method_name
  2. var old_method_name = function() {
  3.     alias_method_name()
  4.     console.log('hello world')
  5. }
复制代码

点评

alias_method_name.apply(this, arguments);  发表于 2015-11-24 12:07

评分

参与人数 1梦石 +1 收起 理由
余烬之中 + 1 你是个好人

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
发表于 2015-10-26 10:33:45 | 只看该作者
参考默认插件,比如 TitleCommandPosition.js

点评

解释起来太麻烦,我只能说不懂的看文档……  发表于 2015-10-26 19:34
不过原理貌似没看懂,能稍微解释一下吗?  发表于 2015-10-26 19:31
谢谢……  发表于 2015-10-26 19:31
占位符,会被替换掉。你直接输出我 eval 的代码好了  发表于 2015-10-26 19:28
请问那个<和>是什么意思……  发表于 2015-10-26 19:16
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

4
发表于 2015-10-26 11:46:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
发表于 2015-10-26 12:20:32 | 只看该作者
晴兰 发表于 2015-10-26 11:46
Object.prototype.alias = function(a, b){
  this.prototype[a] = this.prototype
}
  1.     function defAfter(klass, method_name, callback) {
  2.         var old = klass.prototype[method_name];
  3.         if (typeof(old) !== "function") {
  4.             throw("undefined method " + method_name + " for " + klass.name);
  5.         }
  6.         klass.prototype[method_name] = function() {
  7.             old.apply(this, arguments);
  8.             callback.apply(this, arguments);
  9.         }
  10.     }
复制代码
我当时是这么黑的。如果不主动报错的话,这句话就失效了……

点评

变量当然可以有别名 alias $a $b  发表于 2015-10-26 12:24
其实如果不是function……可以考虑一个defineProperty过去  发表于 2015-10-26 12:24
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
119 小时
注册时间
2015-1-5
帖子
139
6
发表于 2015-10-27 05:59:25 | 只看该作者
本帖最后由 MonsterJohnCN 于 2015-11-26 18:50 编辑

JAVASCRIPT 代码复制
  1. var alias_method_name = old_method_name;
  2. old_method_name = function() {
  3.     alias_method_name.call(this);
  4.     console.log('hello world');
  5. }


如果是带参数:
paramA - 原方法的参数
paramB - 原方法的参数
paramDIY - 你自定义传入的新参数

JAVASCRIPT 代码复制
  1. var alias_method_name = old_method_name;
  2. old_method_name = function(paramA,paramB,paramDIY) {
  3.     alias_method_name.call(this,paraA,paramB);
  4.     console.log('hello world');
  5.     console.log(paramDIY);
  6. }


(谢谢@余烬之中 提出补充带参数的alias)

点评

不考虑一下带参数的情况吗嗯哼~  发表于 2015-11-24 12:08

评分

参与人数 1梦石 +1 收起 理由
余烬之中 + 1 你是个好人

查看全部评分

实力跳票,根本停不下来…… | bgpCore.js | 《下一站》2号DEMO | 插件开发无限延期中……正在研制适用性更强的普适模板,不再输出单体插件……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-1 08:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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