JavaScriptMVC学习(二)--Class
$.Class([name,] [classProps,] [prototypeProps])这个我理解,相当于我们写的java class. class里有它的属性和方法。
name of the class which can be used for introspection,
classProperties that are attached directly to the constructor, and
instance
prototypeProperties.
例如:steal('jquery/class', function(){
$.Class("Todo",{
init : function(){},
author : function(){ ... },
coordinates : function(){ ... },
allowedToEdit: function(account) {
return true;
}
});
});
"Todo"是这个类名称,这个类里有init(), author(), allowedToEdit(account) 方法。
当然这个Class和Java Class一样,也可以继承,
例如:
steal('jquery/class', function(){
$.Class("Todo",{
init : function(){},
author : function(){ ... },
coordinates : function(){ ... },
allowedToEdit: function(account) {
return true;
}
});
Todo('PrivateTodo',{
allowedToEdit: function(account) {
return account.owns(this);
}
})});
这个PrivateTodo继承了Todo class, 不过修改了allowedToEdit(account)方法。
如果想要用到基类中的方法,可以这样写:_super
var SecureNote = Todo({
allowedToEdit: function(account) {
return this._super(account) &&
this.isSecure();
}
})
当一个class的构造函数被调用时,会调用init()方法。
例如:
$.Class('Todo',{
init : function(text) {
this.text = text
},
read : function(){
console.log(this.text);
}
})
var todo = new Todo("Hello World");
todo.read() //--> 打印出:Hello World
在调用init() 发放之前,会先调用setup方法。
setup can be used to change (or normalize) the arguments passed to init.