JAvascript prototypeに基づいてOOP継承のような方法を実現
1186 ワード
この例では、javascriptがprototypeに基づいてOOP継承のような方法を実装する方法について説明します.皆さんの参考にしてください.具体的には以下の通りです.
ここで説明するのは、公有属性(this.修飾子を使用)は上書きできますが、プライベート属性(var修飾子を使用)は上書きできません.
子クラスは親のプライベート属性にアクセスできません.親メソッドは通常、親のプライベート変数にアクセスします.
JavaScriptプログラムの設計に役立つことを願っています.
ここで説明するのは、公有属性(this.修飾子を使用)は上書きできますが、プライベート属性(var修飾子を使用)は上書きできません.
子クラスは親のプライベート属性にアクセスできません.親メソッドは通常、親のプライベート変数にアクセスします.
function Vegetable(){
this.taste='delicious';
var a = 'I\'m Vegetable\'a!'
this.fun1 = function(){
alert('Vegetable fun1 doing...');
}
this.fun3 = function(){
alert(a);
}
}
function Celery(){
var a = 'I\'m Celery\' a';
this.color = 'green';
this.taste = 'bad';
this.fun1a = function(){
alert('Celeryfun1 doing...');
}
this.fun2 = function(){
alert('Celery fun2 doing...');
}
this.fun4 = function(){
alert(a);
}
}
Celery.prototype = new Vegetable();
var stick = new Celery();
var polymorphed = stick.taste;
//alert(polymorphed);
//alert(stick.color);
//stick.fun1();
//stick.fun2();
//stick.fun3();
stick.fun4();
JavaScriptプログラムの設計に役立つことを願っています.