我对这些javascript初始化的哪些(如果有的话)初始化有困惑,因为从我可以tel,他们都做同样的事情。有没有我应该使用一个或另一个的情况? Mt项目要求我将几个函数和命名空间封装在一个对象中,这样我们就不会在全局范围中混淆变量名称,把我特别不清楚+ function(){}();和(function())();javascript构造函数之间的区别
任何帮助将不胜感激。请记住,我们的所有功能的最终目标是封装在单个命名空间中。 IE MyCompany.function,MyCompany.Namepsace.Function ...
<script>
var Ford = {};
+function() {
Ford.start = function() {
console.log("Ford just started");
};
}();
Ford.start();
</script>
<script>
var Honda = {};
(function() {
Honda.start = function() {
console.log("Honda just srtarted");
};
})();
Honda.start();
</script>
<script>
var Toyota = function() {
return {
start: function() {
console.log("Toyota just strted");
}
};
}
var car = new Toyota();
car.start();
</script>
前两个是相同的,但确实需要自我invocing功能is'nt,它也可以同样是一个常规对象文字,第三个更多的是返回一个对象的类,因此是'new'关键字。 – adeneo
@adeneo - 实际上由'new'创建的对象由于'return'而被丢弃。它的功能类似于前两个,不同之处在于它创建了一个新的对象字面值而不是现有的对象 –
是的,第三个是类返回对象的新实例的函数,然后存储在变量中用于初始化'start()'函数。这个问题实际上表明,他们都做同样的事情,所以这意味着什么? +和(在自调用函数上的区别是“没有”,因为返回的结果是无关紧要的。) – adeneo