我尝试将数据推送到构造函数中的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;
}
然后,我尝试使用该方法将数据添加到listeetudiant,但它不起作用:
function printForm(){
this.listeetudiant.push = (1);
}
我试试
this.listeetudiant.push(etudiant[id].id);
其中etudiant [id] .id是正确的var ...
但它仍然无效并且说TypeError:this.listeetudiant未定义。
请帮助我!
当只有一个数据要添加到一个唯一变量时,它很有效。 但它对数组来说根本不起作用! 我需要在不同的时间段将几个数据推入我的数组监听系统,并且它根本不起作用。
例如,如果我写:
function printForm(){
this.listeetudiant=(1);
alert(this.listeetudiant);
}
它运作良好,并且监听值在我的对象中变为1。 问题是我不想添加一个值,我希望listeetudiant是一个数组,并能够添加30个值! Snif!
答案 0 :(得分:2)
你从未真正定义this.listeetudiant
。您已经创建了一个构造函数,但实际上您从未调用构造函数,因此尚未定义this.listeetudiant
如果Cours应该是一个对象,你需要先调用它:
var cours = new Cours();
那么你可以做cours.listeetudiant.push();
function printForm(){
this.listeetudiant.push = (1);
}
- 在这种情况下this
是printform函数。 cours函数中的this
表示cours功能。 this
指的是你所处的任何范围.shotetududiant是一个数组,它是cours对象的一个属性,所以当你想要推送到那个数组时,你需要引用它所属的对象。
答案 1 :(得分:0)
好的,谢谢大家杰克和
非常感谢你的帮助,最后......让它像那样工作: function printForm(){ cours.listeetudiant.push(' 1'' 12&#39); }
仅供参考,这是一系列对象,所以我就是这样做的: 赛道[0] .listeetudiant.push(' 1'' 12&#39);
从法国度过美好的一天。 如果有一天我能够帮助的话,我会帮忙。
我不知道如何解决问题?