aop.js is a simple aop, can be run inside Node.js or in a browser.
JavaScript
Latest commit 5568f0a Apr 30, 2014 @notejs modify some info.
Permalink
Failed to load latest commit information.
test modify some info. Apr 30, 2014
.gitattributes modify some info. Apr 30, 2014
.gitignore modify some info. Apr 30, 2014
LICENSE modify some info. Apr 30, 2014
README.md Update README.md Apr 13, 2013
aop.js fix undefined Jun 6, 2013
package.json modify some info. Apr 30, 2014

README.md

aop.js

aop.js is a simple aop, can be run inside Node.js or in a browser.

install

In a browser

<script type="text/javascript" src="aop/aop.js"></script>

In Node, use NPM to install:

npm install node-aop

Note that the package name is node-aop; the name “aop” was already taken.

Usage

var aop = require("node-aop");// Node.js require. Use window.aop in browser

var obj = {
  url:"",
    get : function(key){
        return this["key"];
    },
    set : function(key, value){
        this["key"] = value;
    } 
};

var h1 = aop.before(obj, "set", function(key, value){
    value += " before-1 ";
    return [key, value]; // modify the parameters, 
});

var h2 = aop.before(obj, "set", function(key, value){
    value += " before-2 ";// do not modify the parameters
});
// before
obj.set("url", "http://mojijs.com");
console.log( obj.get("url") );  // http://mojijs.com before-1


var h3 = aop.after(obj, "get", function(value){
    value += " after-1 "; // do not modify the return value
});

var h4 = aop.after(obj, "get", function(value){
    value += " after-2 "; 
    return value; // modify the return value
});

// after
console.log( obj.get("url") ); //http://mojijs.com before-1  after-2  



// rmmove 
h1.remove();
h4.remove();

obj.set("url", "http://google.com");
console.log( obj.get("url") ); // http://google.com