首页 新闻 会员 周边 捐助

有一个全局JavaScript方法,如何保证命名不会发生冲突啊

0
悬赏园豆:5 [已解决问题] 解决于 2012-03-26 08:56

有一个全局JavaScript方法,如何保证命名不会发生冲突啊

也就是说有没有办法让这个方法只在某一段JS中可以访问啊

示例:

//test.js
function
abc(){
alert("abc");
}

var test={
hello:function(){
abc();
}
};

//页面调用
window.onload=function(){
test.hello();
};

也就是说让方法abc只在test.js中有效

tab_china的主页 tab_china | 初学一级 | 园豆:54
提问于:2012-03-19 12:10
< >
分享
最佳答案
0
var test={
_hello: function(){
this._abc();
    /** 或者  test._abc(); */
},
_abc: function(){
alert("abc");
}
};


采用以上这种方式可以完全避免你的问题。

收获园豆:5
古木天琪 | 菜鸟二级 |园豆:213 | 2012-03-20 14:31
其他回答(3)
0

test.js改成这样就不能在外部访问到了

var test={
hello:function(){
function abc(){
alert("abc");
}
abc();
}
};
LCM | 园豆:6876 (大侠五级) | 2012-03-19 12:22

这里只是一个例子,如果这个方法不得不写成全局方法,有没有办法处理呢

支持(0) 反对(0) tab_china | 园豆:54 (初学一级) | 2012-03-19 12:41

@tab_china: 我觉得木有其它方法呢。

支持(0) 反对(0) LCM | 园豆:6876 (大侠五级) | 2012-03-19 13:04
0

如:namespace.abc = function(){...}

使用命名空间应该可以

小小刀 | 园豆:1991 (小虾三级) | 2012-03-19 19:39

谢谢,能说详细点吗?

支持(0) 反对(0) tab_china | 园豆:54 (初学一级) | 2012-03-20 07:50
0
var test = (function(){
function abc(){
alert("abc");
}

var test={
hello:function(){
abc();
}
};
retrun test;
})();
VVG | 园豆:154 (初学一级) | 2012-03-21 10:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册