Jestem całkiem nowy w pisaniu OO JS, ale to mnie zaskoczyło. Tak więc ustawiłem nowy obiekt Call, a następnie zdefiniuję, co uważam za puste tablice. Kiedy zadzwonić AddFieldQueryToArray() otrzymujęJavaScript Array zdefiniowany w konstruktorze jest niezdefiniowany w prototypie
Uncaught TypeError: Cannot call method 'push' of undefined
Na this.fieldArray.push(field)
ja naprawdę nie wiem, dlaczego. Próbowałem też this.fieldArray = fieldArray;
w konstruktorze.
function Call()
{
var fieldArray = new Array();
var queryArray = new Array();
}
Call.prototype.AddFieldQuerysToArray = function(field,query)
{
if(field !== 'undefined')
{
this.fieldArray.push(field);
}
this.queryArray.push(query);
}
Tylko jeden komentarz, w JavaScript pls zawsze umieścić otwarcie szelki na tej samej linii pisma: to znaczy 'wywołania funkcji() {' 'if (pole == 'niezdefiniowany'!) {'. Ma to pewne skutki uboczne w niektórych przypadkach, takie jak "return" i prawidłowy kod JS powinien zachować ten formularz. –