为什么这样做:

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/

10-10 05:39