Just make objects

create an object, pass it to another object

by rhodee

JavaScript

//method invocation
var addist = {
    val: 0,
    add: function (x,y) { this.val = x + y; },
    subtract: function(x,y) {this.val = x - y}
};

cake = Object.create(addist, {multiply: {value: function(x, y){this.val = x * y}}});

console.log('adding_a', cake.val); //0

cake.add(2, 9);
console.log('adding_b ', cake.val); //11

cake.subtract(2, 9);
console.log('subtract', cake.val); //-7

cake.multiply(2, 9);
console.log('multiply', cake.val); //18

//new 
function Add (x,y) {
 val = 0;
 this.val = x + y;
};

var adder = new Add(2,9);
console.log('adder', adder.val);

//call & apply
                                                                var add = function(x,y) {
   this.val = x + y                                                                };                                                                
                                          
var obj = {
    val: 0
};
                                          
add.apply(obj,[2,9]);
console.log('adder', obj.val);