foo.bar()bar()不是函数
我试图在和对象上调用方法,但是它说x不是函数
var UIController = (function () {
return {
getInput: function () {
return {
type: document.querySelector('.add__type').value,
description: document.querySelector('.add__description').value,
value: document.querySelector('.add__value').value
}
}
}
})
console.log(UIController.getInput());
当我记录它时,它说getInput()不是functoin
答案 0 :(得分:0)
var UIController是一个函数,而不是对象。
再看一下,功能和对象的区别。
对象:
var UIController = {
key : value
}
功能:
var UIController = function (){
....
}
因此您可以使用UIController()。getInput()
进行调用答案 1 :(得分:0)
您需要调用定义来获取返回的内部对象的实例,该对象实际上包含getInput
方法,如下所示:
var UIController = (function () {
return {
getInput: function () {
console.log('foo')
}
}
})
var instance = UIController();
instance.getInput()
答案 2 :(得分:0)
我找到了答案,问题出在我的IIFE函数上,我应该在函数的末尾添加“()”这个花括号,这样就可以了
var UIController = (function () {
return {
getInput: function () {
console.log('foo')
}
}
})()
答案 3 :(得分:-1)
UIController是您分配的函数,因此 像这样的控制台调用.log(UIController()。getInput()) 因为UIController也返回一个函数。