gpt4 book ai didi

javascript - 为什么在函数中使用此对象会导致 Javascript TypeError (undefined) 引发?

转载 作者:行者123 更新时间:2023-12-03 05:01:49 26 4
gpt4 key购买 nike

我声明了一个新对象,如下所示:

function node(){
this.tag = null;
this.Tdata = [];
this.Tchilds = [];
}

我想在函数中使用这个对象:

function Check(root /*I want to use root as type node*/) {
for(var i = 0; i < root.Tdata.length; i++){
if(root.Tdata[i] == -1)
arg++;
}
}

浏览器显示:TypeError:root.Tdata未定义

当我声明一个变量(超出函数的范围)var root = new node();并且我使用root.Tdata[]一切正常。

那么我如何在函数中使用这个对象呢?

编辑:
在函数调用中我做了:

var rootExt = new node();
rootExt.Tdata[0] = -1;
rootExt.Tchilds[0] = -1;

Check(rootExt);

最佳答案

您需要使用 new 运算符实例化一个 Node 对象,然后将该实例化的对象传递到 check 函数的调用中:

function Node() {
this.tag = null;
this.Tdata = [];
this.Tchilds = [];
}

function check(root) {
for(var i = 0; i < root.Tdata.length; i++) {
if(root.Tdata[i] == -1) {
arg++;
}
}
}

var rootNode = new Node() //instantiate a new Node
check(rootNode) //invoke check function with rootNode as argument

关于javascript - 为什么在函数中使用此对象会导致 Javascript TypeError (undefined) 引发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42193705/

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