javascript - 将一个函数指定为另一个函数的属性

标签 javascript function properties scope

为什么这有效:

var myFunction = function() {}

myFunction.printSomething = function() {
    console.log("This is something");
}

myFunction.printSomething();

虽然这不是? (“预期标识符”问题)

var myFunction = function() {
    printSomething: function() {
        console.log("This is something");
    }
}

myFunction.printSomething();

我实际上在第一个示例中成功创建了 myFunction 函数对象的新 printSomething 属性吗?鉴于函数被认为是 javascript 中的对象,我希望两者都能工作。难道是我理解错了?

最佳答案

如果您这样做,第二个示例将起作用:

var myFunction = function() {
    return {
        printSomething: function() {
            console.log("This is something");
        }
    }
}

myFunction().printSomething();

您使用的语法不起作用。你不能只是让 printSomething: function(){}; 卡在这样的函数中间。您可以使用 var printSomething = function(){},或者您可以执行我所做的操作并返回一个对象,其中 printSomething: function(){} 是该对象

关于javascript - 将一个函数指定为另一个函数的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59791324/

相关文章:

Javascript (ES6),基于变量的解构

c - 程序打印垃圾而不是函数调用的实际返回值

ios - 如何更改子类中的委托(delegate)? objective-c

c# - Setter 在构造函数之前调用

javascript - 如何在按钮上设置回调?

javascript - addClass ('open' ) 在 jquery 中不起作用

javascript - 使用 Node.js Highcharts 导出图表

c++ - 堆上的用户定义变量在 while 循环中被销毁

r - 精子功能不明确

c# - 为什么我们需要 C# 中的属性