| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 390 人关注过本帖
标题:假如js支持默认方法
只看楼主 加入收藏
chaoslee
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-12-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
假如js支持默认方法
其实ff已经实现了这个默认方法,名称为__noSuchMethod__,winter大婶在2008年就说过。

如果标准中普及了这么一个默认方法,我们一定会进行各种尝试,比如:(以下代码使用ff运行)

程序代码:
var obj = {
    __noSuchMethod__ : function(name,args){
    
        //obj的方法循环调用
        var funName = name.replace(/\d/g,'');
        if(typeof this[funName] === 'function'){
            for(var i=0,len=parseInt(name.match(/\d+/)[0]) || 0;i<len;i++){
                this[funName].apply(this,args);
            }
        }
            
        
        //obj的只读属性getter
        var r_fields = {
            only_r : 'cciscc'
        };
        var fieldName = name.replace(/^get_/,'');
        if(name.substring(0,4) === 'get_' && fieldName in r_fields){
            return r_fields[fieldName];
        }
    }
    ,greet: function(msg){
        console.log(msg);
    }
    ,cc:function(msg){
        console.log('cc:'+msg)
    }
};
for(var i in obj){
    obj[i] = (function(fn){
        return function(){
            return fn.apply(this,arguments) || this;
        };
    })(obj[i]);
}

alert(obj.cc5('hi').greet('hi').greet2('hello').get_only_r());


http://

[ 本帖最后由 chaoslee 于 2011-2-27 18:02 编辑 ]
搜索更多相关主题的帖子: color 
2011-02-27 00:14
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
收藏
得分:10 
发这个什么意思,没看懂!看来我落伍了!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2011-02-27 14:44
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:10 
回复 2楼 gupiao175
语法糖
2011-02-28 09:22
快速回复:假如js支持默认方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022638 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved