Javascript 对象和函数之间方法调用的差异
以下是代码和: 嘿,小伙子们,这两种方法调用有什么区别。 我必须将test2作为Inmmediate调用函数执行,以确保它工作正常。这意味着要把煤运到纽卡斯尔吗?哪一个更好或者我应该在什么情况下使用它们 嘿,小伙子们,这两种方法有什么区别 呼叫 两个结果对象之间没有显著差异,因为您当前拥有它们 哪一个更好或者我应该在什么情况下使用它们 第二种方案为您提供了在闭包中包含一些私有变量的选项,您的方法可以这样使用:Javascript 对象和函数之间方法调用的差异,javascript,Javascript,以下是代码和: 嘿,小伙子们,这两种方法调用有什么区别。 我必须将test2作为Inmmediate调用函数执行,以确保它工作正常。这意味着要把煤运到纽卡斯尔吗?哪一个更好或者我应该在什么情况下使用它们 嘿,小伙子们,这两种方法有什么区别 呼叫 两个结果对象之间没有显著差异,因为您当前拥有它们 哪一个更好或者我应该在什么情况下使用它们 第二种方案为您提供了在闭包中包含一些私有变量的选项,您的方法可以这样使用: var test2 = function(){ var cnt = 0;
var test2 = function(){
var cnt = 0;
return {
value : "sss",
func1 : function(){
console.log(this.value);
},
getCnt: function() {
return ++cnt;
}
};
}();
test2.getCnt(); // 1
test2.getCnt(); // 2
当需要这些私有变量时,可以使用第二种方案。否则,第一个选项会更简单,只需要一次函数调用。在第一种方法中,如果将其分配给
原型
,则会用全局对象
覆盖构造函数。这是值得注意的
第二种方法没有这个问题
下面是我写的一篇文章,详细讨论了这一点:第一篇文章是具有定义属性和方法的简单对象文字。 见: 第二个是立即调用的函数表达式(IIFE) 返回包含其属性和方法的对象文字
当您想使用其中一个时,它是当前情况的指示器,但第二个使您能够拥有私有“东西”,并用于。是否应该是
test2().func1()
?没有区别-test
的值是一个对象,就像test2
的值一样。第二个问题太宽泛。test2
创建了一个闭包,而test
dosen't可能的重复-@nich添加到我的答案中。@nich-这回答了你的问题吗?
var test2 = function(){
var cnt = 0;
return {
value : "sss",
func1 : function(){
console.log(this.value);
},
getCnt: function() {
return ++cnt;
}
};
}();
test2.getCnt(); // 1
test2.getCnt(); // 2