js原型一(概念と役割)
1644 ワード
原型の概念と役割
原型の概念を説明する前に、下記のコードをご覧ください.
プロトタイプの概念は、プロトタイプとは、関数のプロトタイプ属性を参照したオブジェクトのことで、このオブジェクトがプロトタイプと定義されています.原型の役割1:オブジェクト間のデータ共有を実現します.2.es 6の前に、クラスがない場合は、オブジェクトに向かってシミュレーションし、構造関数に属性があり、原型に公有属性を置くのが一般的です.
この時、上記のコードは次のように改造できます.
また、es 5には、構造関数などのプロトタイプを書く必要がない、より簡単なオブジェクト作成方法が提供されています.
原型の概念を説明する前に、下記のコードをご覧ください.
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHi = function() {
console.log('Hi, meimei,go play.');
};
}
var zs = new Person(' ', 19);
var ls = new Person(' ', 20);
zs.sayHi();
ls.sayHi();
console.log(ls.sayHi === zs.sayHi); //false
これはメモリの中に2つのロジック機能が同じsayHi関数が存在していることを示しています.これは冗長なコードであり、メモリの無駄をもたらします.一方、ユーザーが大量のアプリケーションを開くと、私たちのホームページにはほとんどメモリを残してくれます.この時、私たちはこのsayHi関数を原型に置く必要があります.原型はデータを共有する方法を置くところです.プロトタイプの概念は、プロトタイプとは、関数のプロトタイプ属性を参照したオブジェクトのことで、このオブジェクトがプロトタイプと定義されています.原型の役割1:オブジェクト間のデータ共有を実現します.2.es 6の前に、クラスがない場合は、オブジェクトに向かってシミュレーションし、構造関数に属性があり、原型に公有属性を置くのが一般的です.
この時、上記のコードは次のように改造できます.
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.sayHi = function() {
console.log('Hi, meimei,go play.');
};
var zs = new Person(' ', 19);
var ls = new Person(' ', 20);
zs.sayHi();
ls.sayHi();
console.log(ls.sayHi === zs.sayHi); //true
*原型の取得方法:1.関数.prototype;2.対象._プロト(現在のブラウザがサポートされていない場合、プロトはオブジェクトの構造関数を通じて探します.constructor.prototype;プロトタイプ自体は対象です.また、es 5には、構造関数などのプロトタイプを書く必要がない、より簡単なオブジェクト作成方法が提供されています.
var parent = {say: function() {console.log('nihao');}};
var np = Object.create(parent);
//
function F() {}
F.prototype = parent;
var np = new F;