JavaScript原型オブジェクト(一)
1819 ワード
対象に向けた思想では、共通の、抽象的な属性と方法を抽出し、基質としてサブクラスがこの基質を継承し、これらの属性と方法を継承する.Javascript関数はオブジェクトであり、各関数は非依存性の属性
参照リンクhttp://www.jianshu.com/p/1160d65ce3c3 http://javascript.ruanyifeng.com/oop/prototype.html#toc3
prototype
を継承し、prototype
はオブジェクトである.JavaScriptでは、prototype
属性によって同様の役割が達成されうる.すべてのインスタンスオブジェクト共有の属性および方法を定義する.function Person(name, gender) {
this.name = name;
this.gender = gender;
this.sayHello = function() {
console.log('Hello,I am', this.name, '. I\'m a', this.gender);
};
}
var zs = new Person('zhang san', 'male'),
xh = new Person('xiao hong', 'female');
zs.sayHello(); // Hello,I am zhang san . I'm a male
xh.sayHello(); // Hello,I am xiao hong . I'm a female
zs.sayHello === xh.sayHello; // false
上記コードにおいて、zs.sayHell
およびxh.sayHello
は2つの独立したオブジェクトである.function Person(name, gender) {
this.name = name;
this.gender = gender;
}
Person.prototype.sayHello = function() {
console.log('Hello,I am', this.name, '. I\'m a', this.gender);
};
var zs = new Person('zhang san', 'male'),
xh = new Person('xiao hong', 'female');
zs.sayHello(); // Hello,I am zhang san . I'm a male
xh.sayHello(); // Hello,I am xiao hong . I'm a female
zs.sayHello === xh.sayHello; // true
_proto_
:現在のオブジェクトを指すプロトタイプの属性です.constructor
:このprototype
のオブジェクトを指すコンストラクタは、この属性により、このオブジェクトがどのコンストラクタによって生成されたかを判断することができる.)zs
およびxh
の2つの構成関数によって生成されるオブジェクトは、Person
のPerson
属性にアクセスできるので、prototype
の下のprototype
方法を定義し、sayHello
の例示的なオブジェクトはいずれもアクセスできる.参照リンクhttp://www.jianshu.com/p/1160d65ce3c3 http://javascript.ruanyifeng.com/oop/prototype.html#toc3