Ajax 板


LINE

※ 引述《IwillSay (我将会)》之铭言: : 请问假如我有一个object长这样 : var fns = { : MethodA : function() { : //alert(???); 在这边取得MethodA的字串 : } : }; : 请问有办法在MethodA里面取得他对应的Property Name吗(MethodA) var fns = { a1 : 123, a2 : 456, a3 :"xxx", Method1 : function() { alert(this.a1); }, MethodA : function (){ var name; for (name in this) { if (this.hasOwnProperty(name) && typeof this[name] === 'function' && arguments.callee === this[name]) { break; } } alert(name); }, Method2 : function() { alert(this.a2); } }; fns.Method1(); fns.Method2(); fns.MethodA(); http://www.jsfiddle.net/5E4eq/8/ 先用for 循环this 由於for in 会读取所有prototype chain 上的 property 所以用hasOwnProperty过滤 并用typeof 只读取function 最後再比对是不是同一个function object --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.14.51 ※ 编辑: sk1765 来自: 61.59.14.51 (02/10 22:24)
1F:推 dreamerslab:酷耶没想过有这招 02/10 23:15
2F:→ dreamerslab:不过是不是只要if (arguments.callee === this[name]) 02/10 23:22
3F:→ dreamerslab:这样就可以了,比较快 02/10 23:23
4F:推 s25g5d4:这样不一定会比较快吧... 02/10 23:26
5F:推 s25g5d4:不过话又说回来 typeof 取得的东西其实有点陷阱... 02/10 23:31
6F:→ dreamerslab:判断一个项目不会比判断三个项目快吗? 02/10 23:44
7F:→ s25g5d4:这是个好问题 要看实际情况来说 假如这个物件里塞了一堆不 02/10 23:52
8F:→ s25g5d4:是function 的属性 那麽先判断他的typeof理论上会比较快 02/10 23:53
9F:推 IwillSay:感谢 多学了几个新东西 02/11 00:42
10F:推 othree:我比较好奇为什麽会有这样需求@@ 02/11 00:55
11F:推 dreamerslab:比如debug,或是自己刻一个mvc从controller自动抓 02/11 01:02
12F:→ dreamerslab:action name去对应到view... 02/11 01:02
13F:推 othree:这些需求都直接写成字串就可以了吧 02/11 01:22
14F:推 dreamerslab:是阿,可是每一次都render('blahblah..')很烦人,或是每 02/11 02:25
15F:→ dreamerslab:次debug('methodName,.....');如果能自动抓比较方便搂 02/11 02:26
16F:推 s25g5d4:要debug帮匿名函数命名不就得了= = 02/11 07:27
17F:→ TonyQ:我觉得真的要debug的话还不儒学着用breakpoint跟stacktrace 02/11 08:10
18F:推 IwillSay:其实只是突然好奇能不能这麽做而已 若可以程式弹性会变大 02/12 00:02
19F:推 IwillSay:不过这样跑回圈走返自身属性的成本有点大..所以放弃 orz 02/12 00:15
20F:推 IwillSay:主要的需求简单的说明是 有一个物件可以动态添加方法 02/12 00:18
21F:→ IwillSay:有一个物件可以动态添加对应名称的新物件 属性不一定 02/12 00:18
22F:→ IwillSay:因为名字会有对应 所以假如可以取得自身的属性名称可以 02/12 00:19
23F:→ IwillSay:比较好抓资料 这样外部呼叫的时候仅需要呼叫方法就好 02/12 00:19
24F:→ IwillSay:不过现在是先把name当成参数来处理掉 02/12 00:20







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP