JavaScript中TypeError:FormHandler不是构造函数问题求助
JavaScript中TypeError:FormHandler不是构造函数问题求助
大家好,我最近在跟着《Front-end Web Development : Big Nerd Ranch Guide》这本书学前端,平时都是照着书里的代码复制到本地运行的。结果今天碰到个头疼的问题——控制台一直报TypeError: FormHandler is not a constructor的错误,卡了好久都没解决。
这个章节是讲jQuery的用法,还有用ES5的方式构建和连接不同模块的,我把出问题的formhandler.js核心代码贴出来(后面的代码截断了,但构造函数相关的部分是完整的):
(function (window) { 'use strict' var App = window.App || {}; var $ = window.jQuery; function FormHandler(selector) { if (!selector) { throw new Error('No selector provided'); } this.$formElement = $(selector); if (this.$formElement.length === 0) { throw new Error('Could not find element with selector:' + selector); } } FormHandler.prototype.addSubmitHandler = function (fn) { console.log('Setting submit handler for form'); // 后续代码被截断 } })(window);
我自己琢磨着,会不会是模块暴露的方式不对?毕竟ES5里这种IIFE包裹的模块,是不是得把FormHandler构造函数挂载到全局或者App对象上,外面的代码才能用new FormHandler()来实例化?比如是不是我漏写了类似App.FormHandler = FormHandler; window.App = App;这样的代码?
有没有大佬能帮我排查下问题出在哪呀?万分感谢!
备注:内容来源于stack exchange,提问作者Kourosh Daryaei
相关产品推荐
相关产品推荐

