JS作成対象のパターンインスタンスのまとめ
本論文の例は、JS作成対象のパターンをまとめたものである。皆さんに参考にしてあげます。具体的には以下の通りです。
1.工場モード
特定のオブジェクトを作成するプロセスを抽象化し、特定のインターフェースを実装してオブジェクトを作成する関数を作成しました。新しいオブジェクト を作成します。属性と方法を定義する
オブジェクト認識の問題が解決されていません。
2.コンストラクタモード非明示的作成対象 は、直接に属性と方法を に定義する。は がありません。は を呼び出します。各方法は、インスタンスに を作成します。
3.原型モード
作成された各関数は、
すべての原生引用タイプはその構造関数の原型に方法を定義しています。のすべての属性は、多くのインスタンスによって共有される である。
4.コンビネーション構造と原型モード
構造関数を使用して、例示的な属性、プロトタイプを定義し、方法と共有の属性を定義します。
ここでプロトタイプの変更は、すべてのインスタンスに対して有効になります。
工場モード+構造関数が返したオブジェクトとコンストラクション、コンストラクタのプロトタイプ属性の間には関係がありません。 は は の使用を推奨していません。は、共通属性 がない。は です。は です。
興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「javascript対象向け入門教程」、「JavaScriptエラーとデバッグテクニックのまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」および「JavaScript数学演算の使い方のまとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。
1.工場モード
特定のオブジェクトを作成するプロセスを抽象化し、特定のインターフェースを実装してオブジェクトを作成する関数を作成しました。
return
新規オブジェクト
function createPerson(name, age, job) {
var obj = new Object();
obj.name = name;
obj.age = age;
obj.job = job;
obj.sayHi = function() {
congsole.log(this.name);
};
return obj;
}
var person1 = createPerson("name1", "age1", "job1");
var person2 = createPerson("name2", "age2", "job2");
問題がありますオブジェクト認識の問題が解決されていません。
2.コンストラクタモード
this
のreturn
のnew
オペレータを通じて
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
this.sayHi = function() {
console.log(this.name);
};
}
var person1 = new Person("name1", "age1", "job1");
var person2 = new Person("name2", "age2", "job2");
問題があります3.原型モード
作成された各関数は、
prototype
のプロトタイプ属性を有しており、この属性は、オブジェクトを指すポインタであり、このオブジェクトの用途は、特定のタイプのすべてのインスタンスによって共有できる属性と方法を含む。すべての原生引用タイプはその構造関数の原型に方法を定義しています。
function Person{
}
Person.prototype.name="name"
Person.prototype.age="age"
Person.prototype.job="job"
Person.prototype.sayHi=function(){
console.log(this.name)
}
var person1=new Person()
var person2=new Person()
問題があります4.コンビネーション構造と原型モード
構造関数を使用して、例示的な属性、プロトタイプを定義し、方法と共有の属性を定義します。
function Person(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
}
Person.prototype={
constructor:Person;
sayHi:function(){
console.log(this.name)
}
}
var person1 = new Person("name1", "age1", "job1");
5.ダイナミックモデルここでプロトタイプの変更は、すべてのインスタンスに対して有効になります。
function Person(name,age,job){
this.name=name;
this.age=age;
this.job=job;
if(typeof this.sayHi !="function" ){
Person.prototype.sayHi=functong(){
console.log(this.name)
}
}
}
var person1 = new Person("name1", "age1", "job1");
6.寄生構造関数モード工場モード+構造関数
instanceof
に依存してオブジェクトの原型を決めることができません。
function Person(name, age, job) {
var obj = new Object();
obj.name = name;
obj.age = age;
obj.job = job;
obj.sayHi = function() {
congsole.log(this.name);
};
return obj;
}
var person1 = new Person("name1", "age1", "job1");
7.安定構造モードthis
を使わないnew
を使わない
function Person(name, age, job) {
var obj = new Object();
//
obj.sayHi = function() {
congsole.log(name);
};
return obj;
}
var person1 = Person("name1", "age1", "job1");
// name1
『JavaScript高級プログラム設計』第六章から抜粋する。興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「javascript対象向け入門教程」、「JavaScriptエラーとデバッグテクニックのまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」および「JavaScript数学演算の使い方のまとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。