javascript - 如何对未在对象中声明的函数使用对象简写

标签 javascript object ecmascript-6

假设我正在使用揭示模块模式并具有嵌套函数,例如:

function outer () {
    function a () {}
    function b () {}
    function c () {}
}

我可以用对象简写来揭示这些函数吗,例如: 返回{a,b,c}; 或者我需要将它们绑定(bind)到一个变量,例如:

var a = function a () {};
var b = function b () {};

最佳答案

can i reveal those functions with object shorthand like:

return { a, b, c };

是的。每个函数声明(如您问题中的函数声明)都会创建标识符(函数名称)到当前 lexical environment object 中的值(函数对象)的绑定(bind)。 ;这些绑定(bind)就像变量创建的绑定(bind)一样,可以与新的 ES2015 速记对象表示法一起使用。

示例(您需要使用支持 ES2015 速记符号的浏览器;任何最新的 Chrome 或 Firefox 都支持):

function outer () {
    function a () { console.log("a"); }
    function b () { console.log("b"); }
    function c () { console.log("c"); }
    return {a, b, c};
}
const o = outer();
o.a(); // "a"

关于javascript - 如何对未在对象中声明的函数使用对象简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41780123/

相关文章:

javascript - 箭头函数中的大括号

javascript - 将模块中的函数绑定(bind)到 onclick 事件

javascript - HTML 和 Javascript - 选择下拉菜单选项时显示文本

javascript - 通过 Javascript 获取父 GridView 中的 Div Id

R:访问字段值

javascript - d3 无法读取未定义的属性 'classed'

javascript - 如何按多个项目搜索/过滤列表?

javascript - 在 Promise.prototype.then() 外部声明的对象在其内部使用时返回 undefined

javascript - Nodejs - 循环 JSON 以查找并替换字符串

node.js - 在哪里可以找到 Angular CLI 7.3.9 默认生成的 webpack 设置文件,以便我可以基于它构建我的覆盖?