首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用对象文本替换变量的js

使用对象文本替换变量的js
EN

Stack Overflow用户
提问于 2012-03-22 19:01:57
回答 2查看 101关注 0票数 1

长期以来,我一直使用对象文本来替换代码中的多个var语句。下面是一个典型的例子:

代码语言:javascript
运行
复制
(function(){
  var replaceVars = {};
  function x(){
    replaceVars.num=886;
}
  function y(){
    x();
    replaceVars.cal = replaceVars.num*99;
    return replaceVars.cal;
  }
})();

所以我的问题是:这有什么问题吗?我的意思是,我能看到的正面是: 1)我的整个代码中只有一个var语句。2)在闭包中,所有子属性都可以访问它(这意味着replaceVars属性在闭包范围内成为全局属性。这就像在真正的全局对象(窗口)中创建一个类似全局的子对象(闭包),3)我可以预定义可以立即执行的属性:

var replaceVars={ something1:“一些值”,something2:“一些其他值”}

所以有人能想到我做事的方式有什么坏处吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-22 19:22:01

我不认为使用容器对象有什么问题。不过,我习惯于声明相关代码所需的变量:

代码语言:javascript
运行
复制
var replaceVars = {
    num: null,
    cal: null
};

但是,再一次,这也起作用了:

代码语言:javascript
运行
复制
(function () {
  var num, cal;

  function x(){
    num = 886;
  }

  function y(){
    x();
    cal = num * 99;
    return cal;
  }
})();  
票数 1
EN

Stack Overflow用户

发布于 2012-03-22 19:20:17

我不知道您想要做什么,但是如果您只想在另一个对象中隐藏对象,并且只通过方法访问对象,我会这样做:

代码语言:javascript
运行
复制
var objects = (function() {
  var x = 42;
  var y = 12;

  var container = {};
  container.getX = function getX() {
    return x;
  }
  container.getY = function getY() {
    return y;
  }
  container.getSum = function getSum() {
    return x + y;
  }

  return container;
})();

在我看来,读起来容易多了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9828795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档