/ / створити новий масив і ввести в нього в одному рядку - Javascript OOP - javascript, jquery, масиви

створити новий масив і вставити його в один рядок - Javascript OOP - javascript, jquery, масиви

Я "ве цей код з функцією, в якій я" я намагаюся визначити array потім на наступному рядку, натиснувши на нього:

function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
}

Я спробував це:

this.values = [].push(value);

і

this.values = (this.values || []).push(value);

Але не вдалося. Чи є щось не так з кодом .....

Відповіді:

2 для відповіді № 1

У вас відсутній синтаксис ініціалізації масиву:

var x = [ 1, 2, 3 ];

у вашому випадку це буде:

this.values = [ value ];

Більше інформації тут: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array


Код:

var x = ([]).push("y");

схоже, він повинен генерувати масив і натискати на нього значення. Він створює масив, проте масив не повертається x, повертається нова довжина масиву, тобто 1.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push

Метод push () додає один або більше елементів до кінця масиву і повертає нову довжину масиву. [акцент мій]


2 для відповіді № 2

Просто візьміть значення в масив.

function Spot(value) {
this.x = null;
this.y = null;
this.values = [value];
}

var point = new Spot("foo")

console.log(point);


1 для відповіді № 3

Як ви створюєте масив і натискаєте value це правильно. Але так як вона створена всередині функції, яку потрібно отримати this об'єкт поза функцією певним чином.

Оскільки ви нічого не повертаєте, ви можете викликати його як конструктор.

var spot = new Spot()
function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
}

var spot = new Spot();

Якщо ви не хочете викликати його як конструктор, ви можете просто повернути його this об'єкт

function Spot(value) {
this.x = null;
this.y = null;
this.values = [];
this.values.push(value);
return this;
}