var obj = {
func: function() {
return: {
add: function() {
}
}
},
somefunc: function() {
}
}
我用来转换这个的原始代码......
var hash = (function() {
var keys = {};
return {
contains: function(key) {
return keys[key] === true;
},
add: function(key) {
if (keys[key] !== true){
keys[key] = true;
}
};
})();
问题:
- return关键字有什么用?
- 我的类(class)可以这样组织吗?
最佳答案
在最基本的层面上,return
关键字定义函数应该返回什么。所以如果我有这个功能:
function foo() { return 4; }
然后调用它:
var bar = foo();
foo()
将返回 4
,因此现在的值为 bar
也是4
.
到你的具体例子:
在此用例中 return
用于基本上限制外部访问 hash
内的变量变量。
任何这样写的函数:
(function() {...})();
是自调用的,这意味着它会立即运行。通过设置 hash
的值对于自调用函数,这意味着代码会尽快运行。
然后该函数返回以下内容:
return {
contains: function(key) {
return keys[key] === true;
},
add: function(key) {
if (keys[key] !== true){
keys[key] = true;
}
}
};
这意味着我们可以访问 contains
和 add
像这样的功能:
hash.contains(key);
hash.add(key);
内部hash
,还有一个变量keys
但这不是由 hash
的自调用函数返回的设置为,因此我们无法访问 key
在hash
之外,所以这是行不通的:
hash.keys //would give undefined
它本质上是一种结构化代码的方式,可用于通过使用 JavaScript 闭包来创建私有(private)变量。查看此帖子以获取更多信息:http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-private-variables-in-javascript/
希望这有帮助:)
jack 。
关于javascript - 函数中的return语句有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6562679/