Javascript:创建私有对象属性的语法
由于学习了新事物,我遇到了如何将事物私有化和公开化的问题。我的基本想法很清楚。但就如何建造而言,我有一个具体的问题:Javascript:创建私有对象属性的语法,javascript,object,properties,private,Javascript,Object,Properties,Private,由于学习了新事物,我遇到了如何将事物私有化和公开化的问题。我的基本想法很清楚。但就如何建造而言,我有一个具体的问题: var NOW = (function(){ var privateVariable = 5; var privateFunction = function(){}; return{ publicVariable: 4, publicFunction: function(){} }; })(); 所以我的问题是为什
var NOW = (function(){
var privateVariable = 5;
var privateFunction = function(){};
return{
publicVariable: 4,
publicFunction: function(){}
};
})();
所以我的问题是为什么函数被包装在括号里
var NOW=函数{…} 在该代码中它们是可选的,这也很好:
var NOW = function(){
var privateVariable = 5;
var privateFunction = function(){};
return{
publicVariable: 4,
publicFunction: function(){}
};
}();
人们习惯于包装将立即调用的函数,因为如果不将结果分配给某个或类似的对象,则有必要告诉解析器function关键字正在启动函数表达式,而不是函数声明。例如,这不好:
function() { alert("foo"); }();
因为当解析器遇到可能需要语句、声明或表达式的函数时,它假定它启动了一个声明。所以我们这样做:
(function() { alert("foo"); })();
或者这个:
(function() { alert("foo"); }());
或者其他任何一种方法,将解析器置于需要表达式而不是语句或声明的模式。在该代码中它们是可选的,这也可以正常工作:
var NOW = function(){
var privateVariable = 5;
var privateFunction = function(){};
return{
publicVariable: 4,
publicFunction: function(){}
};
}();
人们习惯于包装将立即调用的函数,因为如果不将结果分配给某个或类似的对象,则有必要告诉解析器function关键字正在启动函数表达式,而不是函数声明。例如,这不好:
function() { alert("foo"); }();
因为当解析器遇到可能需要语句、声明或表达式的函数时,它假定它启动了一个声明。所以我们这样做:
(function() { alert("foo"); })();
或者这个:
(function() { alert("foo"); }());
或者其他任何一种方法,将解析器置于需要表达式的模式,而不是语句或声明。这就是生命,第二部分是什么?是react jsx吗?@RobertMoskal:我想这只是一个强调问题的尝试。它没有第二部分,我只是提出了这个代码来说明我的问题。这个问题已经得到了很好的回答,对于每个人来说,生命的第二部分是什么?是react jsx吗?@RobertMoskal:我想这只是一个强调问题的尝试。它没有第二部分,我只是提出了这个代码来说明我的问题。这个问题已经得到了很好的回答,thx对每个人都做了很好的解释,并且非常清楚地说明了使用该公约的内容和原因,尽管在这种情况下没有必要这样做。CheersVery解释得很好,并且非常清楚地说明了使用此约定的内容和原因,尽管在这种情况下没有必要使用此约定。干杯