Javascript数组没有'我不在建造师Poo工作

Javascript Array doesn't work in constructor Poo

本文关键字:工作 Poo 数组 Javascript      更新时间:2023-09-26

我试图将数据推送到构造函数中的javascript数组中,结果出现了以下错误:

TypeError: this.listeetudiant is undefined

这是我的构造函数:

function Cours(){
*/the array that doesnt work : */
this.listeetudiant=[]; 
*/ the method that is supposed to use the content of the array and to add data to   the     array */
this.affForm=printForm; 
}

然后,我尝试使用方法将数据添加到listeetudent,但它不起作用:

function printForm(){
 this.listeetudiant.push = (1);
}

我试试

this.listeetudiant.push(etudiant[id].id);

其中etudiant[id].id是一个正确的变量…

但它仍然不起作用,并显示TypeError:this.listeetudent未定义。

请帮帮我!

当只有一个数据要添加到一个唯一变量中时,它可以很好地工作。但是它根本不适用于数组!我需要在不同的时间段将几个数据推送到我的数组listeetudent中,但它根本不起作用。

例如,如果我写:

function printForm(){
this.listeetudiant=(1); 
alert(this.listeetudiant);
}

它工作得很好,listeetudent值在我的对象中变为1。问题是,我不想添加一个值,我希望listeetudent是一个数组,并且能够添加30个值!Snif!

您从未实际定义过this.listeetudiant。您已经创建了一个构造函数,但从未实际调用过该构造函数,因此尚未定义this.listeetudiant
如果Cours应该是一个对象,你需要首先调用它:

var cours = new Cours();

然后你可以做一些类似cours.listeetudiant.push(); 的事情

function printForm(){
 this.listeetudiant.push = (1);
}

--在这种情况下的CCD_ 4是打印形式函数。cours函数中的this表示cours函数。this指的是你所在的任何对象的范围。listeetudent是一个数组,它是cours对象的一个属性,所以当你想推送到该数组时,你需要在调用它时引用它所属的对象。

好的,谢谢大家Jack和

非常感谢你的帮助,最后。。。让它像这样工作:函数printForm(){cours.listeetudent.push('1','12');}

仅供参考,它是一个对象数组,所以我这样做了:cours[0]。listeetudant.push('1','12');

在法国度过美好的一天。如果有一天我能帮忙的话,我会帮忙的。

如果你想看看我在做什么代码:http://nicolashcodes.wordpress.com/2014/09/29/exercice-19-supercours-logiciel-sur-tablette-android-daffectation-deleves-a-un-cours-par-drag-and-drop/

我不知道如何解决问题?