micscr,
Сообщение от micscr
|
же ж и методы можно задать, выглядит поэтому как
|
В PHP анонимные функции тоже можно задать значениями элементов массива, и тоже будет выглядеть как... Просто там массивы не объекты, как в JS, поэтому и контекст разный.
var data = ['Ku!', function() { return this[0]; }];
alert(data[1]());
PHP. Error: Using $this when not in object context.
$data = ['Ku!', function() { return $this[0]; }];
echo $data[1]();
Сообщение от micscr
|
короткий аналог определения класса,
|
Определение класса это общие методы для экземпляров, а не дублирование этих методов в каждый экземпляр. Противоположное актуально только, когда нужен объект в единственном экземпляре (singleton), пример ниже.
Сообщение от micscr
|
а не простой структуры с данными как ассоц. массив.
|
У вас простая структура с данными, она даже подписана как data, зачем фантазировать про методы. В JS такие простейшие объекты соответствуют ассоциативным массивам.
Белый шум,
Так еще можно:
var data = new function() {
this.products = [];
this.cart = {};
this.limitMessage = 4;
this.CONST_STATE_PRODUCTLIST = 'productList';
this.CONST_STATE_CHECKOUT = 'checkout';
this.state = this.CONST_STATE_PRODUCTLIST;
}();
Или так:
var data = new class {
constructor() {
this.products = [];
this.cart = {};
this.limitMessage = 4;
this.CONST_STATE_PRODUCTLIST = 'productList';
this.CONST_STATE_CHECKOUT = 'checkout';
this.state = this.CONST_STATE_PRODUCTLIST;
}
};