代码改变世界

JavaScript Patterns 5.9 method() Method

2014-07-04 13:11  小郝(Kaibo Hao)  阅读(399)  评论(0编辑  收藏  举报

Advantage

Avoid re-created instance method to this inside of the constructor.

 

method() implementation

The method() takes two parameters:

• The name of the new method

• The implementation of the method

if (typeof Function.prototype.method !== "function") {

    Function.prototype.method = function (name, implementation) {

        this.prototype[name] = implementation;

        return this;

    };

}

 

How to use this pattern

var Person = function (name) {

    this.name = name;

}.method('getName', function () {

    return this.name;

}).method('setName', function (name) {

    this.name = name;

    return this;

}); 

var a = new Person('Adam');

a.getName(); // 'Adam'

a.setName('Eve').getName(); // 'Eve'

 

References: 

JavaScript Patterns - by Stoyan Stefanov (O`Reilly)