JS中的继承

一、继承

1. JS 中没有继承的概念,我们只能使用原型链模拟继承
    一个类People: 人类
    人类的方法属性: 姓名 性别  年龄  吃  睡
    好人类:helpother , kindHeard
    坏人类:bitOther  , heard
    人类是好人类与坏人的交集,不是并集好人与坏人都继承了人类,但是丰富了人类
    我们可以创建人类,让拥有人类特点的人群继承人类,可以减少其他类的代码数量和工作量,这种思维叫做继承
2. JS 中模拟继承的原理:子类的原型一、继承
3. JS 中没有继承的概念,我们只能使用原型链模拟继承
    一个类People: 人类
    人类的方法属性: 姓名 性别  年龄  吃  睡
    好人类:helpother , kindHeard
    坏人类:bitOther  , heard
    人类是好人类与坏人的交集,不是并集好人与坏人都继承了人类,但是丰富了人类
    我们可以创建人类,让拥有人类特点的人群继承人类,可以减少其他类的代码数量和工作量,这种思维叫做继承
4. JS 中模拟继承的原理:子类的原型等于父类的原型对象
5.继承:
    1) 实现继承核心语句  方法的继承
               好人的原型等于人类的实例化对象
               GoodMan.prototype = new People();
    2)实现继承的核心语句  属性的继承
               this.constructor.apply(this,arguments);
                   this.constructor 是Pople,好人类内部执行人类,
                   将人类的this指向好人类,将参数传递给人类,实现好人类对人类属性的继承

二、几种运算

1. in 运算
        用于判断一个属性是否存在于一个对象中,存在返回真,不存在返回假
        in 运算可以查找自身属性,也可以进行原型链查找
        for in
            枚举:将事情可能发生的情况 一一列举出来,
                      但是系统默认的属性,如 constructor 等属性是不可枚举的
                      for in 可以将原型链上所有的自己添加的属性列举出来
2. hasOwnProperty
        这个方法是    Object.prototype,所以这个方法是任何对象都可以调用
        表示判断某个对象自己内部是否包含某一个属性,存在返回真,不存在返回假
        这个方法不会查找原型链,仅仅查找这个对象本身是否包含某一个属性
3. 使用点语法判断某属性是否存在于一个对象中
        obj.e    如果返回 undefined,说明 e 不存在于 obj 中,会进行原型链查找
4. instanceof
    类: class
    实例: instance
    a instance b
    验证对象 a 是不是类 b 的实例化对象
    运算原理:
        遍历 HelloKiity 这个对象原型链上的每一个原型对象,
        如果遍历到这个原型对象是某一个构造函数的原型,
        那么就认为HelloKitty是这个构造函数的实例化对象,返回true
5. isArray
    是es5新方法,用于验证一个对象是不是数组
     Array.isArray(arr); // IE 9 开始兼容
6. isPrototypeOf
    用来判断,要检查对象的原型链的对象,是否存在于指定的对象的实例中,是返回真,否则返回假
    判断某个构造函数的原型,是否存在于指定对象的原型链中,是返回真  否则返回假
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值