javascript prototype constructorについて話します.


もっと読む
  私のブログを見てくれてありがとうございます.これからはjavascript prototypeに関する内容を説明します.知識が限られていますので、間違ったところがあれば、よろしくお願いします.
  prototypeはまとめて何文になりますか?
  prototypeはjavaオブジェクトの一つの静的属性に相当するので、新たに生成されたオブジェクトごとにこのプロトタイプの属性が共有されています.プロトタイプに対して該当する修正をすれば、新生オブジェクトのアドレス参照の属性(Aray、{}など)は影響しますが、値参照の属性には影響がありません.
   例:
  

    function ClassA(){ }
		
		function Pro(){

			this.p1 = 'p1';

			this.fun1 = function(){
				console.log('fun1');
			};

			this.arr = [];
		}
		
		var pro = new Pro()
		ClassA.prototype = pro;

		var a1 = new ClassA();
		var a2 = new ClassA();//a1,a2  prototype(pro)  
		
		a1.p1 = 'a1p1';
		console.log('a1.p1='+a1.p1+'| a2.p1='+a2.p1);//        a1.p1       a2.p1

		a1.arr.push(1,2,3);
		console.log('a1.arr='+a1.arr+'| a2.arr='+a2.arr);//       ,  a1.arr      a2.arr
   
   constructorについては、2つの話があります.1、constructor属性は常に現在のオブジェクトを作成する構造関数を指しています.2、各関数にはデフォルトの配相prototypeがあります.このプロトタイプのconstructorはこの関数を指しています.
  

    //constructor                 
		//---             prototype,   prototype constructor      
		console.log('--Example_One--');
		var Person = function(name){
			this.name = name;
		};
		
		Person.prototype.getName = function(){
			return this.name;
		}
		
		var p = new Person('zhang');
		
		console.log(Person.constructor === Function); //true    Person    Function
		console.log(p.constructor === Person); //true    p  Person
		console.log(Person.prototype.constructor === Person);//true    prototype constructor     
		console.log(p.constructor.prototype.constructor === Person);//true            
		
		//        prototype        ,         
		console.log('---Example_Two---');
		var Student = function(name){
			this.name = name;
		};
		
		Student.prototype = {
			getName:function(){
				return this.name;
			}
		}
		
		var s = new Student('zhen');
		
		console.log(Student.constructor === Function );
		console.log(s.constructor === Student);
		console.log(Student.prototype.consturctor === Student);
		console.log(s.constructor.prototype.constructor === Student);
		
		//         
		
		console.log('---Example_Three---');
		var Animal = function(name){
			this.name = name;
		};
		
		/*
		Animal.prototype = {
			getName:function(){
				return this.name;
			}
		}
		*/
		Animal.prototype = new Object(
			{
				getName:function(){
					return this.name;
				}
			}
		);
		
		Animal.prototype.constructor = Animal;  //    prototype constructor
		
		var a = new Animal('zhen');
		
		console.log(Animal.constructor === Function );
		console.log(a.constructor === Animal);
		console.log(Animal.prototype.constructor === Animal);
		console.log(a.constructor.prototype.constructor === Animal);
   
  もし間違いがあったら皆さんに教えてください.