javascript継承メカニズムプロト.プロトタイプと

1165 ワード

すべてのコンストラクタ(Functionクラス)/関数はプロトタイプの属性を持っています.各プロトタイプは対応します.proto_
普通の字面量の対象はプロトタイプ属性を含まないが、プロト.を選択します
 
同前プロト.属性は常にプロトタイプのオブジェクトを指します.
	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の略語です.