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

JavaScript构造函数代码本地运行报错,视频中正常,原因何在?

问题分析与解决

核心错误1:构造函数未使用new关键字调用

JavaScript构造函数必须通过new关键字实例化对象,否则会触发两个问题:

  • 函数内部的this会指向全局对象(浏览器环境下为window),而非新创建的实例。
  • 构造函数默认返回undefined,导致你的student变量实际是undefined。

正确调用方式:

var student = new stud("Craig", 21, "Engineering");

核心错误2:变量命名不一致

你代码中声明的变量是student,但后续DOM操作里使用的是students(多了一个s),这会直接触发students is not defined的报错。需要保持变量名统一,要么全用student,要么全用students。

修正后的完整代码:

function stud(name, age, studies) {
  this.name = name;
  this.age = age;
  this.studies = studies;
}
// 使用new关键字实例化,且变量名统一
var student = new stud("Craig", 21, "Engineering");

document.getElementById("demo").innerHTML = "the student called " + student.name + " whose age is " + student.age + " is studying " + student.studies;

视频中能运行的可能原因

视频里代码能运行大概率是这两种情况:

  • 视频中实际使用了new关键字(可能你漏看了细节)。
  • 视频环境中预先定义过全局的students变量,但这种写法不符合规范。

内容的提问来源于stack exchange,提问作者SiO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 16:18:34