//父类
function Aa(){
this. name= "小名";
};
Aa. prototype. showName= function(){
return this. age= 10;
};
//子类
function Bb(){
};
Bb. prototype= new Aa(); //实现继承
var b1= new Bb();
alert( b1. name); //小名
//-----------------------------------------------------------------------------
//上面的继承有几点问题:1.constractor的指向被改变了
alert( b1. constructor );
// 弹出结果为:
function Aa(){
this. name= "小名";
};
//所以 constractor的指向被改变了;修正指向
Bb. prototype = new Aaa(); //这个就叫做类式继承
Bb. prototype. constructor= Bb; //修正指向问题
//-----------------------------------------------------------------------------
// 2.子类可以改变父类的属性
//如果上面的代码改成
//父类
function Aa(){
this. name=[ 1, 2, 3];
};
//子类
function Bb(){
};
Bb. prototype= new Aa(); //实现继承
var b1= new Bb();
b1. name. push( 4);
var b2= new Bb();
console. log( b2. name); //[1,2,3,4]
//-----------------------------------------------------------------------------
//此处的b1 b2相互影响了,改变了父类函数Aa,所以是有问题的,上面的代码可改成:
//父类
function Aa(){
this. name= "小名";
};
Aa. prototype. showName= function(){
return this. age= 10;
};
//子类
function Bb(){
};
var F= new f();
F. prototype= Aa. prototype; //此处只能传递方法,没有办法传递属性
var b1= new Bb();
Bb. prototype= new F(); //把F的实例赋给Bb的原型
console. log( b1. age);

转载于:https://www.cnblogs.com/hilxj/p/10742846.html

关于js中的类式继承相关推荐

  1. js中的Java式继承

    JavaScript中的Java式继承 区别 Java类似的强类型面向对象语言,类为 实例字段 他们是基于实例的属性或变量,用以保存独立对象的状态 实例方法 他们是类的所有实例所共享的方法,由每个独立 ...

  2. js中的类、继承、闭包

    一.js中的类 类:在面向对象编程中,类(class)是对象(object)的模板,定义了同一组对象(又称"实例")共有的属性和方法. Javascript是一种基于对象(obje ...

  3. JS原型继承和类式继承

    类式继承(构造函数) JS中其实是没有类的概念的,所谓的类也是模拟出来的.特别是当我们是用new 关键字的时候,就使得"类"的概念就越像其他语言中的类了.类式继承是在函数对象内调用 ...

  4. 详解JS中的原型与继承

    每当我们提起原型链时不免会想到原型对象,对象的原型,还有众多的继承方式.于是prototype.[[prototype]].constructor等等难免在头脑中打架. 然而原型其实并不是什么高大上的 ...

  5. javascript类式继承函数最优版

    直接上代码: klass函数 var klass = function (Parent, props) {var Child, F, i;//1.新构造函数Child = function () {i ...

  6. new 实例化对象是啥意思_二. 初步认识JS中的类和对象

    1 构造函数的定义 在JS中, 没有类(class)的概念, 主要是通过构造函数来模拟的. 语法 function 构造函数名 () {// 函数体} 使用function关键字表示定义一个构造函数 ...

  7. js中关于类及类继承

    在面向对象的程序设计语言中,类和类之间有显式的继承关系,一个类可以显式的指定继承了哪个类,子类将具有父类的所有属性和方法.js虽然也支持类.对象的概念,但没有继承的概念,只能通过特殊的手段来扩展原有的 ...

  8. 对于python 3.x与python2.x中新型类的继承特性总结

    (1)一般性继承特性 """ 该文件对于python 3.x 及python 2.x的New-style 类的一般性继承特性进行了说明和测试. (1)实例的继承特性:搜寻 ...

  9. js 中的五种继承方法

    正式发布的ES6中已经封装实现了其他OO语言中的继承形式,Class Extends,这里主要记录js的原型继承和借用构造函数继承 一.原型链继承 function Super(){this.name ...

最新文章

  1. C语言 素数平方之和
  2. python 装饰器 参数-python函数装饰器之带参数的函数和带参数的装饰器用法示例...
  3. mybatis映射器${}和#{}的区别
  4. 机房收费系统--登录窗体
  5. ROS服务中自定义数据类型
  6. localstorage存mysql_存储localstorage
  7. 【vue】vue +element 搭建项目,要求既支持pc端又支持移动端
  8. outlook删除web邮件服务器,从Outlook中删除 Web 邮箱策略Exchange Online
  9. jenkins 关联 钉钉机器人
  10. Javascript 立即执行函数
  11. 求素数及素数表的获取
  12. 在一个窗口显示多个视频子窗口
  13. 瑞萨RH850开发环境搭建
  14. C语言字符串输出中文乱码
  15. 【前端进阶】-TypeScript类型声明文件详解及使用说明
  16. 犹太人很会赚钱?一老板用犹太人的思维做生意,一年赚了200多万!
  17. Android audio 二 AudioRecord 分析上
  18. JavaScript数组扁平化
  19. html如何使mp4成为背景,如何让MP4 video视频背景色变成透明?
  20. 四款小众实用的办公神器软件,值得你去收藏

热门文章

  1. 关于Navicat 连接 RDS数据库
  2. 每日一题【33】解析几何-椭圆的垂径定理与焦半径公式
  3. [转]一个计算机高手的成长
  4. 在docker容器里的Linux环境下,执行netstat命令显示 command not found
  5. 『可道云』内网穿透牛刀小试,会敲键盘就能搭建的私有云网盘
  6. MVP2006成都聚会图片
  7. Vue中的keep-alive组件
  8. Kubernetes 调度 Node污点/容忍
  9. python工商银行流水_python爬取银行名称和官网地址
  10. 软件测试项目实战案例分解,跟着我一步一步操作【人力资源管理系统】