看似以后会用到的变量 要提前声明到顶级的作用域吗?~
var test = {
init: function (id) {
// this.id = id; // 这种方案
method0(id);
method1(id);
},
method0: function (userId) {
console.log(userId);
//console.log(this.id); // 这种方案
method2(userId);
},
method1: function (userId) {
userId = userId.toUpperCase();
},
method2: function (userId) {
return userId.substring(3).split(',');
}
};
如上栗子 id 很常用 各各方法几乎都会用到 虽然目前都可以通过传参的形式给各方法 但是如果方法多了呢?或者一个方法被调用的作用域里访问不到 id 那么这种时候 id 应该放到最顶层以供所有方法都可以访问吧 是写的时候就这么去写 还是说等遇到这情况了 再去改?~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我同意@Pandorym的意见。
并且本来你这种方式声明的方法里面的【this作用域】就是变来变去的,属于工具方法,需要其他参数,请自带或者在方法里面加多一个对应的参数。
如果需要this.id这种方案,请使用
function xxx(){
}
的方式声明和使用。
如果
id
不屬於test
,當「一个方法被调用的作用域里访问不到 id 」時,也是應該將id
作為參數傳入。我的做法是把一个模块要用到的变量放到模块的最上方;全局变量放在global.js中
如果非要用这种写法的话
个人建议封装一层fn对id的调用,然后函数需要调用是执行封装id的方法即可。