update
This commit is contained in:
parent
962caebbb7
commit
87bf53d076
1825 changed files with 94929 additions and 0 deletions
|
@ -0,0 +1,77 @@
|
|||
|
||||
|
||||
```js
|
||||
//+ run
|
||||
function Machine(power) {
|
||||
this._power = power;
|
||||
this._enabled = false;
|
||||
|
||||
var self = this;
|
||||
|
||||
this.enable = function() {
|
||||
self._enabled = true;
|
||||
};
|
||||
|
||||
this.disable = function() {
|
||||
self._enabled = false;
|
||||
};
|
||||
}
|
||||
|
||||
function Fridge(power) {
|
||||
// унаследовать
|
||||
Machine.apply(this, arguments);
|
||||
|
||||
var food = []; // приватное свойство food
|
||||
|
||||
this.addFood = function() {
|
||||
if (!this._enabled) {
|
||||
throw new Error("Холодильник выключен");
|
||||
}
|
||||
if (food.length + arguments.length >= this._power / 100) {
|
||||
throw new Error("Нельзя добавить, не хватает мощности");
|
||||
}
|
||||
for(var i=0; i<arguments.length; i++) {
|
||||
food.push(arguments[i]); // добавить всё из arguments
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
this.getFood = function() {
|
||||
// копируем еду в новый массив, чтобы манипуляции с ним не меняли food
|
||||
return food.slice();
|
||||
};
|
||||
|
||||
*!*
|
||||
this.filterFood = function(filter) {
|
||||
return food.filter(filter);
|
||||
};
|
||||
|
||||
this.removeFood = function(item) {
|
||||
var idx = food.indexOf(item);
|
||||
if (idx != -1) food.splice(idx, 1);
|
||||
};
|
||||
*/!*
|
||||
}
|
||||
|
||||
var fridge = new Fridge(500);
|
||||
fridge.enable();
|
||||
fridge.addFood({ title: "котлета", calories: 100 });
|
||||
fridge.addFood({ title: "сок", calories: 30 });
|
||||
fridge.addFood({ title: "зелень", calories: 10 });
|
||||
fridge.addFood({ title: "варенье", calories: 150 });
|
||||
|
||||
var dietItems = fridge.filterFood(function(item) {
|
||||
return item.calories < 50;
|
||||
});
|
||||
|
||||
fridge.removeFood("нет такой еды"); // без эффекта
|
||||
alert(fridge.getFood().length); // 4
|
||||
|
||||
dietItems.forEach(function(item) {
|
||||
alert(item.title); // сок, зелень
|
||||
fridge.removeFood(item);
|
||||
});
|
||||
|
||||
alert(fridge.getFood().length); // 2
|
||||
```
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue