You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:49:33