Javascript JS-具有指定值的对象的属性变为未定义

Javascript JS-具有指定值的对象的属性变为未定义,javascript,object,properties,Javascript,Object,Properties,我试图在js中运行这段代码 function platform() { platform.list.push(this); //some more code } platform.lf = false; 我在platform.list中存储了所有平台实例。但当我尝试这样做时: console.log(platform.list[0].lf); 我没有定义?有什么帮助吗?(我确实有一个平台对象的实例)这就是您想要做的吗?为什么它在代码

我试图在js中运行这段代码

    function platform() {
       platform.list.push(this);
       //some more code
    }
    platform.lf = false;
我在platform.list中存储了所有平台实例。但当我尝试这样做时:

    console.log(platform.list[0].lf);

我没有定义?有什么帮助吗?(我确实有一个平台对象的实例)

这就是您想要做的吗?为什么它在代码片段上工作得很好?您是否忘记在“//some more code”部分中初始化lf(this.lf=…),这是您没有发布的部分

只是一个旁注-platfrom.lf和属于类实例的lf(您试图访问的实例)是完全不同的东西

test.list=[]
功能测试()
{
测试、列表、推送(本);
this.x=Math.random();
}
a=新测试();
b=新试验();
console.log(test.list.length);
console.log(test.list[0].x);

console.log(test.list[1].x)以下可能是您需要学习的内容。如果您正在创建一个构造函数(由于私有变量的原因,我现在建议使用它而不是类),那么在您对其调用
new
之前,它不是一个对象

功能平台(){
常量a=['lame',1',test'];//私有数组
this.lf=真;
this.testFunc=()=>{
//arrow函数中没有参数数组
控制台日志(a);
返回此;//用于属性链接
}
}
功能平台(){
this.list=[];
this.addPlatform=函数(){
this.list.push(…参数);
归还这个;
}
}
const pf=新平台,np=新平台;
np.lf=假;
添加平台(新平台,新平台,np);
pf.list[0].lf=false;

控制台日志(pf.list);np.testFunc()
@BorisLipschitz,如果这是一个带有
list
属性的构造函数,它是一个数组,那就可以了,但是我猜OP没有
list
属性,它不是一个构造函数,否则OP会使用
this.list.push
。然后再一次。。。谁知道呢。没有足够的代码来回答这个问题。哦,@croquetflamigo,平台只是一个函数,而不是一个对象。如果是构造函数,则需要调用
新平台
来创建对象。此外,您应该按照约定将构造函数的第一个字符大写。@StackSlave因为我的第一个注释相当愚蠢(没有正确阅读OP),而且最有可能的答案是他没有意识到“platform.lf”和“this.lf”不是一回事,所以我删除了我以前的注释:-)