js继承和方法重载

来源:互联网 发布:淘宝网货到付款女装 编辑:程序博客网 时间:2024/06/06 07:25

js式:百度文库  对象冒充、原型方式

JS继承方法有多种,比如使用call进行对象冒充(相当于Java中的对象内聚)

JS继承的还可以使用Object.create(原型对象)来实现

如:

<script type="text/javascript">

 
 var person = {
  age:20,name:"xiaoku",sex:"male"
 };
 var stu = Object.create(person);

//stu的原型是person  委托实现了这一机制 
 stu.age = 22;//覆盖age属性,作为自己的属性  person原型不改变
 stu.birthday = "1991-09-09";
 document.write(stu.age+"  "+stu.name+"  "+stu.sex);
 console.dir(stu);
 
 alert(Object.getPrototypeOf(stu).age);
 

</script>

 

Javascript的引擎会先看当前的这个对象中是否有这个属性,如果没有的话,就会查找他的Prototype对象是否有这个属性,一直继续下去,直到找到或是直到没有Prototype对象

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

JS方法重载,可以借用Object.getPrototypeOf和call方法来实现。

如:

<script type="text/javascript">
 //getPrototypeOf  通过这个对方法进行重载
 var book = {
  name:"Java编程",
  buy:function(){
   alert("I buy a book name call:"+this.name);
  }
 };
 
 var cattonBook = Object.create(book);
 cattonBook.buy();//重载前,调用原型的方法
 cattonBook.money = 20;//增加属性
 cattonBook.buy = function(){
  Object.getPrototypeOf(this).buy.call(this);//调用原型book中的buy方法
  alert("付款需要:"+this.money);
 }
 cattonBook.buy();//重载后方法
</script>

 

 

0 0
原创粉丝点击