读书人

JavaScriptMVC学习(2)-Class

发布时间: 2012-06-26 10:04:13 作者: rapoo

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.

读书人网 >JavaScript

热点推荐