Тут через функцию создал объект со скрытой от внешнего доступа переменной и методом для работы с этой переменной:
function Machine() {
var petrol = 100;
this.getPetrol = function() {
return petrol;
};
this.setPetrol = function(value) {
petrol = value;
};
}
var machine = new Machine();
var p = machine.getPetrol();
machine.setPetrol(5);
var newP = machine.getPetrol();
console.log(p, newP);
Теперь хотел бы записать тот же самый объект, но не через функцию, а через непосредственно объект. Помогите пожалуйста это сделать, вот моя попытка:
var Machine = {
this.petrol = 100,
this.getPetrol = function() {
return petrol;
},
this.setPetrol = function(value) {
petrol = value;
}
}
var machine = new Machine();
machine.getPetrol();
В литерале объекта поля описываются в следующем формате:
fieldName : fieldvalue
В первом примере ты добавляешь в свой объект два поля: getPetrol
, setPetrol
.
Формально аналогичный объект можно записать так:
var petrol = 100;
var Machine = {
getPetrol : function() {
return petrol;
},
setPetrol : function(value) {
petrol = value;
}
}
var petrol = 100;
var Machine = {
getPetrol: function() {
return petrol;
},
setPetrol: function(value) {
petrol = value;
}
}
console.log(Machine.getPetrol());
Первое что приходит на ум, помять свойство defineProperties
Либо дать доступ только по уникальной ссылке через es6 symbol
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, нужно реализовать WebSocket клиент-сервер, где сервер наNet и библиотека Fleck, а клиент на JavaScript в браузере
Подскажите, как взять строку с БД MYSQLПотом положить ее в переменную, затем удалить