Reference
- [1]static method in javascript
- http://stackoverflow.com/questions/1535631/static-variables-in-javascript
- [2]Public / Private variable and method
- http://phrogz.net/JS/classes/OOPinJS.html
Agenda:
- class
- constructor
- inheritance & prototype
- static method
static method
與其他語言不一樣的, 因為javascript所有東西都是object , 所以建立static method就等於建立一個新的function object.
但這樣的方法沒辦法直接存取class裡面的variable, 必須先new出一個object來幫忙. (不過也只能access到public variable, 這點應該是合理.)
function ClassDemo(attr){
var private_name = "I am private variable";
this.public_name = "I am public variable";
}
ClassDemo.show = function(obj){
alert(obj.private_name);
alert(obj.public_name);
}
function main(){
ClassDemo.show(new ClassDemo());
}
inheritance & prototype
在javascript中要進行繼承, 必須要藉由prototype的形式.
function ClassDemo(attr){
this.name = "I am base class";
}
ClassDemo.prototype.show = function(){
alert(this.name);
}
subClass.prototype = new ClassDemo();
subClass.prototype.constructor = subClass;
function subClass(attr){
this.name = "I am sub class";
}
function main(){
var obj = new ClassDemo();
obj.show();
obj = new subClass();
obj.show();
}
constructor
在javascript裡面並沒有constructor, 不過因為我們是用fucntion來模擬, 所以本身就可以帶入參數來進行初始化.
function ClassDemo2(attr){
this.member_one = attr.name
this.show = function(){
alert(this.member_one);
}
}
function main(){
var obj = new ClassDemo2({"name" : "Name of member one is Tom!"});
obj.show();
}
class
在javascript中並沒有class, 但是在javascript裡面所有東西都是object, 所以我們可以藉由這樣的特性來模擬出class的用法.
也就是先建立出一個function的object, 在藉由這個function object 建立出一個新的object.
function ClassDemo(){
this.member_one = "this is member one!"
this.show = function(){
alert(this.member_one);
}
}
function main(){
var obj = new ClassDemo();
obj.show();
}
全站熱搜
留言列表