一 java面向对象的5种写法
①
function Circle(r){
this.r = r;
}
Circle.PI = 14159;
Circle.prototype.area = function(){
return Circle.PI*this.r*this.r;
}
var c = new Circle(1.0);
alert(c.area());
②
var Circle = function(){
var obj = new Object();
obj.PI = 3.14159;
obj.area = function(r){
return this.PI*r*r;
}
return obj;
}
vary c = new Circle();
alert(c.area(1.0));
③
var Circle = new Object();
Circle.PI = 3.14159;
Circle.area = function(r){
return this.PI*r*r;
}
alert(Circle.area(1.0));
④
var Circle = {
"PI":3.14159,
"area":function(r){
return this.PI*r*r;
}
};
alert(Circle.area(1.0));
⑤
var Circle = new Function("this.PI = 3.14159;this.area = function(r) {return r*r*this.PI}");
alert(new Circle().area(1.0));
二 变量隐式定义
<script language="javascript">
(function test(){
var a=b=5;
alert(typeof(a))
alert(typeof(b))
})()
alert(typeof(a))
alert(typeof(b))
</script>
输出:number number undefined number
var a=b=5
只定义a变量,
b变量未定义,所以隐式定义,在js中隐式定义是全局变量