JavaScript は、classes_javascript スキルの複数のメソッド インスタンスを実装します。

WBOY
リリース: 2016-05-16 17:34:53
オリジナル
968 人が閲覧しました

構築メソッド

コードをコピー コードは次のとおりです。

function coder()
{
this.name = 'モダン マジック';
this.job = 'Web 開発者';
this.coding = function ()
{alert('コードを書いています'); }
}

var coder = new coder();
alert(coder.name);
coder.coding();


ファクトリ メソッド
コードをコピー コードは次のとおりです。

function createCoderFactory()
{
var obj = new Object() ;
obj.name = 'モダンマジック';
obj.job = 'プログラマー';
obj.coding = function ()
{
alter('コードを書いています' );
};
return obj;
}
var coder = createCoderFactory();
alert(coder.name);
coder.coding();

ファクトリ メソッドとコンストラクター メソッドにはどちらも同じ欠点があります。つまり、インスタンスが作成されるたびに、クラスの各関数がインスタンス化されるということです。

プロトタイプチェーン

コードをコピー コードは次のとおりです:

function coder() {}
coder.prototype.name = 'Modern Magic';
coder.prototype.job = 'プログラマー';
coder.prototype.coding = function(){
alert('私はコードの作成 ');
};
var coder = new coder();
alert(coder.name);
coder.coding();

プロトタイプ チェーンの欠点の 1 つは、1 つのインスタンスが変更されると、他のインスタンスもそれに応じて変更されることです。例:

コードをコピー コードは次のとおりです。

var coder1 = new coder();
var coder2 = new coder();
alert(coder1.name); /*現代の魔法を表示*/
coder2.name = 'nowmagic';
alert(coder1.name); Show nowamagic* /
alert(coder2.name); /*これも nowamagic*/

混合メソッド
上記の 3 つはそれぞれ欠点があるため、改善する必要があります。 。

コードをコピー コードは次のとおりです。

function coder()
{
this .name = 'Modern Magic';
this.job = 'プログラマー';
}
coder.prototype.coding = function(){
alert('コードを書いています');
};

動的オリジナルチェーン
最初の 3 つの欠点を解決する別の方法があります。

コードをコピー コードは次のとおりです。

function coder()
{
this .name = 'Modern Magic';
this.job = 'プログラマー';
if (typeof(coder._init) == '未定義')
{
this.coding =関数 ( :)
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート