gpt4 book ai didi

Javascript - 带有 new 关键字的函数构造函数

转载 作者:行者123 更新时间:2023-11-28 18:25:25 24 4
gpt4 key购买 nike

当使用 new 调用下面的 foo 函数时,它会变成一个构造函数,返回分配给 baz 的对象。

function foo() {
this.baz = "baz";
console.log(`${this.bar} ${baz}`);
}

var bar = "bar";
var baz = new foo(); // prints undefined undefined

问题是为什么控制台语句中的 baz 会得到 undefined 值 - 可以说,当 baz 被提升时,当new foo() 被调用,直到函数返回,baz 没有分配返回的对象?

后面一行中的

console.log(baz) 正确打印返回的对象。

最佳答案

在函数中,this 中没有bar。您需要删除 this.barthis 部分。对于baz,您必须使用this.baz,因为它附加到对象实例。

function foo() {
this.baz = "baz";
console.log(`${bar} ${this.baz}`);
}

var bar = "bar";
var baz = new foo();

这段代码的意思

this.baz = "baz";
console.log(`${this.bar} ${baz}`);

当你创建一个对象时,它只会有baz 在其中。在正文中,如果您想访问对象的属性,则需要通过 this 访问。 ${baz} 未定义,因为没有 baz 变量(它不会在 this 中查找)。因此,如果您需要访问函数中的baz需要使用this.baz

${this.bar}呢,this中没有bar属性,只有baz >.

关于Javascript - 带有 new 关键字的函数构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39266828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com