javascript継承メカニズムプロト.プロトタイプと
1165 ワード
すべてのコンストラクタ(Functionクラス)/関数はプロトタイプの属性を持っています.各プロトタイプは対応します.proto_
普通の字面量の対象はプロトタイプ属性を含まないが、プロト.を選択します
同前プロト.属性は常にプロトタイプのオブジェクトを指します.
prototype属性->「クラス名.prototype」を使うと_uプロト.属性->「例._proto_」は実は同じものです.実例によって類名されるコードは「インスタンス.counstructor」であり、すなわち「インスタンス.counstructor==クラス名」は実例のためである.proto_==クラス名.prototypeしかも例.counstructor==クラス名なので例._proto_==例.counstructor.prototypeだから_u uプロト.counstructor.prototypeの略語です.
普通の字面量の対象はプロトタイプ属性を含まないが、プロト.を選択します
同前プロト.属性は常にプロトタイプのオブジェクトを指します.
function Person(name, age){
this.name = name;
this.age = age;
}
Person.prototype.getName = function(){
return this.name;
}
Person.prototype.setName = function(name){
this.name = name;
}
var Man = {};
Man.__proto__ = new Person("Jobs", 35);
console.log(Man.getName());
var Female = function(){};
Female.prototype = new Person("Bill", 45);
var female = new Female();
console.log(female.getName());
var Dog = {};
Dog.__proto__.getName = function(){
return "Docke";
}
console.log(Dog.getName());
まとめ追加:prototype属性->「クラス名.prototype」を使うと_uプロト.属性->「例._proto_」は実は同じものです.実例によって類名されるコードは「インスタンス.counstructor」であり、すなわち「インスタンス.counstructor==クラス名」は実例のためである.proto_==クラス名.prototypeしかも例.counstructor==クラス名なので例._proto_==例.counstructor.prototypeだから_u uプロト.counstructor.prototypeの略語です.