为什么这样做:
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/