我有一个返回对象的IIFE.在我的app.js文件中,我将其添加到index.html中的脚本标记中,我登录到我的IIFE的控制台类型,它是一个对象.它不应该是一个功能吗?为什么typeof返回一个对象?
这是app.js中的IIFE:
var UIController = (function() { var DOMstrings = { inputType: '.add__type', description: '.add__description', value: '.add__value', addBtn: '.add__btn' }; return { getInput: function() { // return an object containing all values from UI elements return { type: document.querySelector(DOMstrings.inputType).value, // will be either income or expense description: document.querySelector(DOMstrings.description).value, // description of transaction value: document.querySelector(DOMstrings.value).value // value of transaction }; }, getDOMStrings: function() { return DOMstrings; } }; })(); console.log(typeof UIController);
Ray Toal.. 5
IIFE代表"立即调用的函数表达式."换句话说,是通过调用函数创建的表达式.调用函数意味着调用函数并生成结果.IIFE的值是调用(调用)函数的结果,而不是函数本身.
在您的示例中,为变量UIController
分配调用函数的结果.您的函数返回了具有两个属性的对象.该对象被分配给UIController
.因此按预期typeof UIController
生产object
.
IIFE代表"立即调用的函数表达式."换句话说,是通过调用函数创建的表达式.调用函数意味着调用函数并生成结果.IIFE的值是调用(调用)函数的结果,而不是函数本身.
在您的示例中,为变量UIController
分配调用函数的结果.您的函数返回了具有两个属性的对象.该对象被分配给UIController
.因此按预期typeof UIController
生产object
.