gpt4 book ai didi

javascript - 向对象添加属性,定义它并立即记录它返回未定义

转载 作者:行者123 更新时间:2023-12-02 15:55:28 27 4
gpt4 key购买 nike

为什么立即调用对象新添加的属性会返回“未定义”?经历编译和运行过程会很棒。示例第 3 行 console.log:

function foo(baz) {
this.baz = "baz";
console.log(baz); //why does this print undefined?
}

var baz = new foo();

最佳答案

因为你需要使用this.baz访问您之前添加的变量。

this里面foo()foo功能。但是,当您登录baz时它将在 window 上搜索(全局)对象,因为它没有在 foo() 中定义.

所以,你的陈述是这样的:

console.log(window.baz);

baz未定义,它将记录 undefined .

演示

function foo() {
this.baz = "baz";
alert(this.baz);
}

var baz = new foo();

全局演示baz

var baz = 'foo';

function foo() {
console.log(this);
this.baz = "baz";
alert(baz);
// Same as alert(window.baz);
}

var baz = new foo();

<小时/>

更新的问题:

Sorry I forgot to add parameter. I've edited the question – Nazerke

function foo(baz) {
this.baz = "baz";
console.log(baz); //why does this print undefined?
}

var baz = new foo();

因为你还没有向 foo() 传递任何参数使用 new 创建新对象时,你得到bazundefinedfoo() .

演示

function foo(baz) {
this.baz = baz;
alert(baz);
}

var baz = new foo('Magic!');

关于javascript - 向对象添加属性,定义它并立即记录它返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31584393/

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