javascript - 在javascript中的if子句中返回一个值

标签 javascript

_editor: function () {
  //retrieve all the editors on the current page
  var editors = window.tinymce.editors;
  var container = this.element;
  //pick one that's associated with current container
  $(editors).each(function (i, ed) {
    if (ed.id == container.id) {
      return ed; // even if this is invoked,
    }
  });
  // undefined is returned
}

我不得不将上面的代码更改为

_editor: function () {
  //retrieve all the editors on the current page
  var editors = window.tinymce.editors;
  var container = this.element;
  var editor;      
  $(editors).each(function (i, ed) {
    if (ed.id == container.id) {
      editor = ed; // do not return yet. Store it.
    }
  });
  return editor; // return here
}

我认为这是因为 JavaScript 的作用域特性。有人可以解释 1) 如果这只是 JavaScript 固有的 2) 上面代码中每个功能范围到底发生了什么?

谢谢。

最佳答案

在第一种情况下,您从传递给 $(editors).each 的匿名函数返回一个值,而不是外部函数。在第二种情况下,您从外部函数返回。

这就是它与几乎所有允许嵌套函数的语言一起工作的方式。 return 只从最里面的函数返回。

关于javascript - 在javascript中的if子句中返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20557759/

相关文章:

javascript - Web语音API语法

javascript - 使用 Base64 图像时 Canvas.ToDataUrl 存在安全违规

javascript - JS模块模式覆盖函数

javascript - Firebase 远程配置( Angular )

javascript - jquery fadeIn 效果与 <tr>

javascript - 为什么谷歌地图折线描边颜色总是黑色?

javascript - JavaScript 中键值对数组的求和值

javascript - 检查动态路由 express js

javascript - 使用 ?version=XXX 刷新缓存中的 CSS 文件

javascript - 缩放 Firefox 时关键帧动画闪烁