Javascript函数创建新对象失败

Javascript function fails to create new Object

本文关键字:对象 失败 函数 创建 新对象 Javascript      更新时间:2023-09-26

为什么这段代码不能像预期的那样工作?少了什么吗?

function User(name) {
    this.name = name;
};
var j = User('Jack');
alert(j.name)

如果不使用new创建用户,则this表示全局对象窗口。window.name在不同浏览器中不同

所以应该是new User("Jack");

function User(name) {
    this.name = name;
};
var j = new User('Jack');
alert(j.name)

您需要一个new关键字来使用User作为构造函数。没有它,User中的this引用全局对象(浏览器中的窗口),并且不会创建新对象。j将未定义

使用new创建一个新对象,并将其赋值给j,然后将this绑定到该对象。因此,name将设置在新创建的对象上,而不是窗口上。