Javascript Invocation Patterns
by jamey777
JavaScript
//function literal
var add = function(a, b) {
return a + b;
};
console.log(add(1, 2)); //invoke
//method invocation pattern
var myObject = {
value: 0,
increment: function(inc) {
this.value += typeof inc === 'number' ? inc : 1;
}
};
myObject.increment(5);
console.log(myObject.value); //invoke
//function invocation pattern
var sum = add(3, 4);
console.log(sum); //invoke
// Augment myObject with a double method.
myObject.double = function() {
var that = this; // Workaround.
var helper = function() {
that.value = add(that.value, that.value);
};
helper(); // Invoke helper as a function.
};
// Invoke double as a method.
myObject.double();
console.log(myObject.value);
//constructor invocation pattern
var Quo = function(string) {
this.status = string;
}
Quo.prototype.get_status = function() {
return this.status;
}
var myQuo = new Quo("confused");
console.log(myQuo.get_status());
//apply invocation pattern
var array = [6, 6];
var sum = add.apply(null, array)
console.log(sum);
var statusObject = {
status: 'A-OK'
};
var status = Quo.prototype.get_status.apply(statusObject);
console.log(status);