面向对象与原型【36】--原型字面量写法

来源:互联网 发布:云计算基础架构 编辑:程序博客网 时间:2024/05/16 12:03
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>面向对象语言-原形</title>
<script>
/*function Box(){};
var box=new Box();
//alert(box.prototype);//使用对象实例无法访问到prototype
//alert(box._poto_);//使用对象实例访问prototype的指针
alert(Box.prototype);//使用构造函数名(对象名)访问protytype;
*/
function Box(){};
//可以使用字面量的方式创建原型对象,这里{}就是对象,是Object,new Object相当于{};
Box.prototype={
name:"Lee",
age:"100",
run:function(){
return this.name+this.age+"运行中";
}

};


var box=new Box();
//alert(box.run());

//alert(box.constructor);//返回Object

//alert(box.constructor==Object);//true;*/


/*//如果,按照普通的原型模型写
function Box(){};
Box.prototype.name="Lee";
Box.prototype.age=100;
Box.prototype.run=function(){
return this.name+this.age+"运行中....";
};
var box=new Box();
alert(box.constructor==Object); //flase;
alert(box.constructor);  //返回原型对象 function Box(){}
*/
//那么,如果我想用字面量的方式返回原型对象 function Box(){},该咋办呢,请看下面
function Box(){};
//可以使用字面量的方式创建原型对象,这里{}就是对象,是Object,new Object相当于{};

Box.prototype={ //使用json的方法来写原型,适合方法内容较少的情况
constructor:Box,  //强制指向Box;
name:"Lee",
age:"100",
run:function(){
return this.name+this.age+"运行中";
}
};
//var box=new Box();
//alert(box.run());
//alert(box.constructor)//;function Box(){}
//alert(box.constructor==Object);//false
//重写了原型对象
Box.prototype={
age:200   //这里不会保留任何消息了;
};
var box=new Box();
alert(box.name);  //undefined



</script>
</head>
<body> 
</body>
</html>
0 0