Javascript js使用对象文本替换变量
在我的代码中,我使用对象文本替换多个var语句的时间最长。下面是一个典型的例子:Javascript js使用对象文本替换变量,javascript,object-literal,Javascript,Object Literal,在我的代码中,我使用对象文本替换多个var语句的时间最长。下面是一个典型的例子: (function(){ var replaceVars = {}; function x(){ replaceVars.num=886; } function y(){ x(); replaceVars.cal = replaceVars.num*99; return replaceVars.cal; } })(); 所以我的问题是:这有什么问题吗?我的意思是,我
(function(){
var replaceVars = {};
function x(){
replaceVars.num=886;
}
function y(){
x();
replaceVars.cal = replaceVars.num*99;
return replaceVars.cal;
}
})();
所以我的问题是:这有什么问题吗?我的意思是,我能看到的优点是:1)在我的整个代码中只有一条var语句。2) 在闭包中,所有子对象都可以访问它(这意味着replaceVars属性在闭包范围内变为全局。这就像在真正的全局对象(窗口)中创建一个全局类子对象(闭包)3)我可以预先定义准备立即启动的属性:
替换变量={
一些东西1:“一些价值”,
一些东西2:“一些其他的价值”
}
那么,有人能想到我做事方式的缺点吗?我不确定你想做什么,但如果你只是想在另一个对象中隐藏对象,例如,仅通过方法访问对象,我会这样做:
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;
})();
在我看来,这更容易阅读。我不确定您想做什么,但如果您只是想在另一个对象中隐藏对象,例如,仅通过方法访问对象,我会这样做:
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;
})();
在我看来,这更容易阅读。我认为使用容器对象没有任何问题。尽管如此,我还是习惯于声明相关代码所需的变量:
var replaceVars = {
num: null,
cal: null
};
但是,这同样有效:
(function () {
var num, cal;
function x(){
num = 886;
}
function y(){
x();
cal = num * 99;
return cal;
}
})();
我认为使用容器对象没有任何问题。尽管如此,我还是习惯于声明相关代码所需的变量:
var replaceVars = {
num: null,
cal: null
};
但是,这同样有效:
(function () {
var num, cal;
function x(){
num = 886;
}
function y(){
x();
cal = num * 99;
return cal;
}
})();
你为什么这么做?为了什么?JavaScript中没有多个
var
语句。只要确保它们都出现在它们所使用的函数的顶部就行了。在多年前第一次使用jsLint之后,它抱怨太多变量,我开始这样做,它一直困扰着我。另外,它看起来比一次声明所有变量要整洁得多:变量x,y,z,count chocula@jbabey这只是我组织代码的一种方式,然后我就习惯了。@codewombat接受jslint给你的每一个“错误”。你为什么这样做?为了什么?JavaScript中没有多个var
语句。只要确保它们都出现在它们所使用的函数的顶部就行了。在多年前第一次使用jsLint之后,它抱怨太多变量,我开始这样做,它一直困扰着我。另外,它看起来比一次声明所有变量要整洁得多:变量x,y,z,count chocula@jbabey这只是我组织代码的一种方式,然后我就习惯了。@codewombat接受jslint给你的每一个“错误”10吨盐。现在已经阅读了原始问题下面的注释,我怀疑我的答案是否是你想要的…;)现在我已经阅读了原始问题下面的评论,我怀疑我的答案是否是您想要的…;)六羟甲基三聚氰胺六甲醚。。。提前声明属性是一种良好的做法,还是对内存/速度有好处?@codewombat这只是为了您自己,提供了有关以下代码的线索。因此,您不必浏览所有代码来确定正在使用哪些属性。。。提前声明属性是一种良好的做法,还是对内存/速度有好处?@codewombat这只是为了您自己,提供了有关以下代码的线索。因此,您不必浏览所有代码来确定正在使用哪些属性。