:javascriptクラスの属性、クラスの方法、クラスの実例、実例の属性、実例の方法、prototype、auプロト.テストと結果
4272 ワード
<script>
function Circle( radius ){
this.r = radius;
this.des = " ";
this.showInfo = function(){
alert(" "+this.des);
}
}
function Circle_area(r){ return Circle.PI*this.r*this.r; }
function Circle_perimeter(r){ return 2*Circle.PI*r;}
Circle.PI = 3.14;
Circle.perimeter = Circle_perimeter;
Circle.prototype.area = Circle_area;
var c = new Circle(3);
//
//alert(Circle.PI )//3.14
//alert(c.PI)//undefined , , 。
//alert(c.constructor.PI)//3.14 , ,
//alert(Circle.des)//undefined Circle this.des this , r , 。
//alert(c.des)// this c。
/* :
: , , 。
. 。 , .constructor
,
javascript : javascript ( javascript
), ( , ,
this [c.prototype this. 、 ]:)
, c PI, c.constructor
, 。
*/
//
//alert(Circle.perimeter(3)); //18.4 。
//alert( c.perimeter(3) ); //FF:c.perimeter is not a function IE: 。 perimeter Circle ,
//alert(c.constructor.perimeter(3));//18.84 ( ) ( )。
//alert(c.area(3))//28.25.... Circle prototype area Circle 。
//alert(Circle.area(3));//FF: : Circle.area is not a function area Circle , Circle 。
// : , , 。
// prototype
//alert(c.prototype); //undefined ptototype
//alert(Circle.prototype); //object Object
//alert(Circle.prototype.constructor)// Circle ( ), alert(Circle)
//alert(Circle.prototype.area(3));//NaN , NaN, area this.r undefined。
//alert(Circle.prototype.PI) //undefined PI Circle , prototype
//alert(Circle.prototype.constructor.PI)//3.14 Circle ( ), PI 。
/* :prototype javascript 。
Javascript :1. prototype , prototype , prototype
。。2. prototype constructor , ( :A B,B A...)
3.prototype ( , , , , ,
。 。) prototype
(function A(){} A.prototype.pa = function(){} var oA = new A(); oA pa)。
*/
/* , 。
1.javascript , this (
)。 this , 。2.javascript
, __proto__ 。 ,
, , ,javascript , 。
? ,javascript
, , , 。 */
// __proto__
//alert(c.__proto__)//FF:object IE8:undefined Circle.prototype, Circle prototype 。
// IE8 __proto__ , FF 。
//alert(c.__proto__.PI)//undefined PI ,PI Circle
//alert(c.__proto__.area(3))//NaN , NaN this.r undefined。
/* :__proto__ prototype , prototype,
, 。*/
</script>