我正在检查一个名为def.js的库,它使 JavaScript 对象以与 Ruby 类似的方式继承。但我无法真正理解的是在提供的示例中使用 JavaScript 的方式:
def ("Person") ({
init: function(name){
this.name = name;
},
speak: function(text){
alert(text || "Hi, my name is " + this.name);
}
});
def ("Ninja") << Person ({
init: function(name){
this._super();
},
kick: function(){
this.speak("I kick u!");
}
});
var ninjy = new Ninja("JDD");
ninjy.speak();
ninjy.kick();
简而言之,有两点:
- def ("人")({}); // 函数调用后的括号
- def ("忍者") << 人 ({}); // 两个由操作符分隔的函数调用 <<
这是对 JavaScript 的正确/合法使用吗?如果是,它的含义是什么,即浏览器如何解释。