JS prototype例原型と継承


prototype属性は、オブジェクトタイプの原型の参照を返します.
        
プロトタイプ属性でオブジェクトのクラスの基本機能を提供します.オブジェクトの新しいインスタンスの「継承」は、オブジェクトのプロトタイプの操作を与えます.オブジェクトの新しいインスタンスJavaScriptの各関数にはプロトタイプの属性があります.関数プロトタイプには一般的に共通の属性があります.
直接例:

<script>
Array.prototype.max = function(){
	alert("      !");
};
var arr = new Array(1, 2, 3, 4, 5, 6);
var max = arr.max();


function oo () {
	alert("oo");
}

oo.prototype.addMethodsOne = function() {
	alert("addMethodsOne!!!");
}
new oo().addMethodsOne();


var a = function() {};
a.prototype.bbb = function() {
	alert("var a = function(){}     !");
}
new a().bbb();

var b = {}; //         !
b.prototype.ccc = function(){ //         !
	alert("cccc");
}
new b().ccc();//         !


/*************************************************/
function test2() {
	var bb = "1";
	this.cc = "2";
	this.d = function() {alert("dddd");};
 }
 test2.prototype.aaa = function () {
	alert(this.bb);  //undefined
	alert(this.cc);  //2
	alert(this.d()); // ddd
 }
new test2().aaa();
          this   ,               




/*********************************************/
//  js           

   var YPO = {
  };
  YPO.DOM = {
	createElement:function() {
		alert("createElement!");
	},
	getElement:function() {
		alert("getElement!");
	}
  }

  YPO.DOM.BUTTON = function() {
		alert("creteButton");
  }
  YPO.DOM.createElement(); // createElement!
  new YPO.DOM.createElement();//  createElement!
  YPO.DOM.BUTTON();  // creteButton
  new YPO.DOM.BUTTON();// creteButton
</script>
~~~~~~~~~~~
原型と継承
<script>
//JavaScript   "  "       。
//JavaScript        prototype  ,        
//             ,                            
var a = {
    a1:12
}
a.cc = function() {
	alert(this.a1);
}
a.cc();//
//a.prototype       ,  prototype       ,        。
//a.prototype.gg = function() {
//	alert("gg");
//}
//    (  )        
//  

//       prototype
//        (  )         。

//alert(a1); undefined
//alert(this.a1);12-->

function dd () {
	this.pp = 1;
	function pa() {
		alert("pa");
		return "  "
	}
	this.apa = pa;
}
dd.ddf = function() { //
	alert(this.pp);

}
dd.prototype = {
	ddm:function(){
	    var pp = "123";
		alert(this.pp);    //           
		alert(this.apa()); //           
		alert(this.aa);    //            
	}
}

var ddd = new dd();
ddd.aa= 23;
//       ,         。             this.aa  
ddd.ddm();
alert("*************************************************");

function oo(){
	this.vv = 123;
	function pp() {
		alert("***pp*************");
	}
}
var p = new oo()
alert(new oo().vv);     // 123
//alert(new oo().pp()); //          
//alert (oo.pp());    //          

oo.pp = function() {
	alert("pppppp");
}
alert(oo.pp());// pppp
//dd.ddf(); 
//undefined; dd.ddf()      dd()   
// ddd.ddm   ddf    ,             
//  dd.ddf() dd()            ,    

//              var a = {};a.cc={CXXXXX};

//ddd.ddf();//         
// alert(pp);undefined
// alert(this.pp); 1
</script>