JavaScriptオブジェクトと継承
2960 ワード
JavaScriptの対象は無秩序な集合データタイプで、いくつかのキーペアからなる.例えば、実際の生活では、それぞれのものが対象であり、その対象は色、温度、ソフトなどの属性を持っています.この対象内で行われる操作は、対象の色を変えるとか、その対象の位置を変えるとか、その対象となる方法です.JavaScriptでは、ほとんどのものが対象であり、JSの対象は非常に重要です.対象を理解したら、JavaScriptを知ることができます.もちろん、JSを勉強しているobjectは順風満帆ではありません.作者は何日間勉強して、みんなのために個人の対象に対する理解と悟りを分かち合います.
オブジェクトの属性とメソッドのアクセス
上記で述べたように、一つのオブジェクトは複数の属性と複数の方法を持つことができます.
JavaScriptのオブジェクトはダイナミックタイプなので、オブジェクトに属性を追加または削除できます.
オブジェクト指向のプログラミング言語を学んだことがありますが、これらの概念は分かります.類:類は対象の型式のテンプレートで、たとえば、person類を定義して多くの人類が共有する特性を表しています.類自体は一種のタイプで、personは人間のタイプを表していますが、具体的な誰かを表していません. 例:たとえば、クラスに従って作成されたオブジェクトであり、例えば、personクラスに従って、person 1、person 2、person 3などの複数のインスタンスを作成することができ、各インスタンスは、1つの具体的な人を表し、それらはいずれもpersonタイプのほとんどの属性または全部を持つ. JavaScriptでは、この概念を変更する必要があります.JavaScriptは分類と実例の概念を区別せずに、プロトタイプによってオブジェクト指向プログラミングを実現します.
以下の文章の一部分は廖雪峰の個人のホームページの例を採用します.
私達はこのStudentの対象が名前があることを見て、身長があって、また走って、少し明に似ていて、いっそそれによって明を創立します!次にxiaomingを作成します.
xiaomingのプロトタイプを他のオブジェクトに向けると、
以上は原型について説明しましたが、
以上は個人の対象の継承に対する理解です.この文章は以下の文章の内容を助けました.廖雪峰–対象に対してプログラミングした阮一峰–構造関数の継承
オブジェクトの属性とメソッドのアクセス
上記で述べたように、一つのオブジェクトは複数の属性と複数の方法を持つことができます.
var person = { //
Name:"John", //
age:19,
eyeColor:"blue",
hairtype:"straight",
'high-school':"....."
};
オブジェクトの属性にアクセスしたい場合は、このようにしても良いです.person.name;
//
person["name"];
属性名が有効な属性名でない場合は''''を使用できません.第二の方法でアクセスします.person["high-school"];
実際にJavaScriptオブジェクトの属性はすべて文字列ですが、属性に対応する値は任意のデータタイプでも良いです.JavaScriptのオブジェクトはダイナミックタイプなので、オブジェクトに属性を追加または削除できます.
//
person.skincolor="yellow";
person.language="Chinese";
delete person.name; //
以上は対象の簡単な概念の紹介です.続いてまとめてみます.オブジェクト指向プログラミングの重要な特性ー継承.オブジェクト指向のプログラミング言語を学んだことがありますが、これらの概念は分かります.
以下の文章の一部分は廖雪峰の個人のホームページの例を採用します.
私達はこのStudentの対象が名前があることを見て、身長があって、また走って、少し明に似ていて、いっそそれによって明を創立します!次にxiaomingを作成します.
var Student = {
name: 'Robot',
height: 1.2,
run: function () {
console.log(this.name + ' is running...');
}
};
var xiaoming = {
name: ' '
};
xiaoming.__proto__ = Student;
xiaomingは自分のname属性を持っていますが、run()メソッドを定義していません.ただし、明はStudentから引き継ぎますので、Studentにrun()の方法があれば、xiaomingも呼び出すことができます.xiaomingのプロトタイプを他のオブジェクトに向けると、
var Bird = {
fly: function () {
console.log(this.name + ' is flying...');
}
};
xiaoming.__proto__ = Bird;
今はxiaomingはもうルーン()ができなくなりました.彼はすでに鳥になりました.そしてバード内の引継ぎのためのfly方法を呼ぶしかありません.以上は原型について説明しましたが、
xiaoming.__proto__ = Student;
Student属性をそのまま継承すれば、xiaomingプロトタイプの修正に多少の問題があります.そのために、空いているオブジェクトを仲介として利用することができます.var F = function(){};
F.prototype = person.prototype;
man.prototype = new F();
man.prototype.constructor = man;
空き関数はほとんどメモリを占めていないので、マンのプロトタイプオブジェクトを修正すると、personのプロトタイプオブジェクトに影響がありません.上の方法を包装してください.function extend(Child, Parent) {
var F = function(){};
F.prototype = Parent.prototype;
Child.prototype = new F();
Child.prototype.constructor = Child;
Child.uber = Parent.prototype;
}
これで原型の継承ができます.以上は個人の対象の継承に対する理解です.この文章は以下の文章の内容を助けました.廖雪峰–対象に対してプログラミングした阮一峰–構造関数の継承