javascript - 函数中的return语句有什么用?

标签 javascript

    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;             
     }     
  }; 
})();

问题:

  1. return关键字有什么用?
  2. 我的类(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;             
        }
    }     
};

这意味着我们可以访问 containsadd像这样的功能:

hash.contains(key);
hash.add(key);

内部hash ,还有一个变量keys但这不是由 hash 的自调用函数返回的设置为,因此我们无法访问 keyhash之外,所以这是行不通的:

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/

相关文章:

javascript - 删除电子邮件扩展名,但想保留 "@"但忽略 yahoo.com 部分。不打印@符号

javascript - 对嵌套 ng-repeat 中的列进行排序(AngularJS)

javascript - 通过 Angular 移动 DOM 元素时保持焦点

javascript - 这些javascript函数之间的区别

javascript - 什么是websockets,我应该用什么js框架

javascript - jquery 缓冲区/队列的效果?或者判断效果是否正在进行中?

javascript - 为什么这个图像不是垂直镜像的?

javascript - 如何获得正确检查类型所实现的接口(interface)的流程?

javascript - ng-click中Angularjs指令链接调用功能

javascript - 区分程序化 Bing AJAX map 导航与用户平移/缩放和窗口大小调整