当前位置:  开发笔记 > 编程语言 > 正文

当我将IIFE的类型记录到控制台时,它是一个对象而不是一个函数,为什么?

如何解决《当我将IIFE的类型记录到控制台时,它是一个对象而不是一个函数,为什么?》经验,为你挑选了1个好方法。

我有一个返回对象的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.



1> Ray Toal..:

IIFE代表"立即调用的函数表达式."换句话说,是通过调用函数创建的表达式.调用函数意味着调用函数并生成结果.IIFE的值是调用(调用)函数的结果,而不是函数本身.

在您的示例中,为变量UIController分配调用函数的结果.您的函数返回了具有两个属性的对象.该对象被分配给UIController.因此按预期typeof UIController生产object.

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有