<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//js中模拟继承效果的案例
//函数对象中的三种“继承” 方式 汇总 //方式一
//*******************************************************************************************************************
/* function A() {
}
A.prototype = {
aname:"123",
method1:function() {
alert("对象A的原型");
}
}
function B() {
// this.name="bbb",
//
// this.method2=function() {
// alert("对象B的原型");
// }
}
B.prototype = {
bname:"bbb",
method2:function() {
alert("对象B的原型");
}
} var a = new A(); B.prototype = a;
var b = new B();*/ // b.method2(); //会被a中的原型覆盖 b中的原型,除非逐个添加原型的方式
// b.method // alert(b.bname); //*********************************************************************************************************************
//方式二+方式三 解决覆盖问题
function A(){}
A.prototype = {
aname:"aaa",
method1:function() {
alert("A的原型对象");
}
}
function B(){}
//B的原型属性指向A的原型属性
B.prototype = A.prototype; //利用原型分散的添加方式给函数对象B添加属性和方法
B.prototype.bname = "bbb";
B.prototype.method2 = function(){
alert("B的原型对象");
} //分别创建A和B函数对象的小对象
var a = new A();
var b = new B();
a.method2(); //说明a可以访问B的内容
b.method1(); //说明b也可以访问A的内容 //因为A的原型指向的新的内存地址,和B原型也指向这个内存地址
//且后来往原型中添加的属性和方法也是在这个内存地址,共用了一个内存地址:深复制
//所以模拟实现了继承的功能,但并不是真正的继承 </script>
</head> <body> </body>
</html>

最新文章

  1. swift 001
  2. HTML5 学习笔记(五)——WebSocket与消息推送
  3. 在ScrollView下加入的组件,不能自动扩展到屏幕高度
  4. VTK GetScalarPointer() and GetScalarComponentAsFloat() not work
  5. MongoDB error: couldn&#39;t connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js(转)
  6. 50. Pow(x, n)
  7. js数值计算
  8. 【转】Android--广播BroadcastReceiver
  9. spring aop中pointcut表达式完整版
  10. java每日一总结
  11. 基于CoreText的基础排版引擎之不带图片的排版引擎
  12. python之OrderedDict类
  13. Hibernate注解开发、注解创建索引
  14. HDU 4403 A very hard Aoshu problem(dfs爆搜)
  15. main方法介绍
  16. APK模式下,epg版本升级,需要做同步
  17. 127.0.0.1 localhost 0.0.0.0 回环地址区别
  18. cakephp怎么默认显示index/index文件
  19. oracle踩过的坑
  20. 【微信小游戏】文件系统,远程加载资源打破4M限制

热门文章

  1. iOS验证码倒计时(GCD实现)
  2. 深入浅出ES6(十):集合
  3. MyEclipse编码设置
  4. C#获取当前路径的方法
  5. Linux下配置JDK与Tomcat
  6. C++运算符重载——重载一元运算符
  7. Mysql日期和时间函数不求人
  8. ubuntu下如何快速加密可移动存储设备
  9. swift:入门知识之控制流
  10. Fiddler如何抓取使用了SSL或TLS传输的Android App流量