JS高级复习-(2)

面向对象的三大特征:(满足两个)

  1. 封装:把代码放入对象的方法中

  2. 继承:一个对象 拥有 另一个对象 所有的成员

  3. 多态: 一个对象 在不同情况下的不同状态

    js中一般不涉及多态,主要是继承

原型链(继承)

  1. 原型对象:存储具有共同特征的数据

  2. 原型继承:把父对象 作为子对象构造函数的原型

  3. 终点:null

  4. 对象访问原型链的规则:

    • 对象先访问自己的,自己没有就找原型的,原型没有就找原型的原型的原型,一值到原型终点null,如果还找不到,属性则获取undefined,方法则会报错 xxx is not function
  5. instanceof(关键字):运算符,用于检车构造函数的prototype在不在实例对象的原型链中。

    • 检测:右边构造函数prototype在不在 左边实例对象的原型链中

    • / arr->Array.prototype->Object.prototype->null
              let arr = [10,20,30]
      
              console.log( arr instanceof Array )//true
              console.log( arr instanceof Object )//true
              console.log( arr instanceof String )//false
              
      

      作用:某些函数为了限制数据类型,在内部需要instanceof进行判断是否是正确的类型数据类型。

arguments关键字

  • 作用:获取函数的所有实参

  • 是一个伪数组:有数组的三要数(元素、下标、长度)但是不能使用数组的方法

  • 应用:一般用户参数数量不限的函数

  • 例如:arr.push() 、 Math.max() 这个函数的实参数量不限,底层原理就是使用arguments来连接所有的实参

rest参数

  • 剩余参数(rest参数):获取函数剩余的所有实参

  • 特点:(1)只能作为一个参数 (2)是真数组

  • 一般情况下,rest参数可以替代arguments

  • 语法:

       function fn1() {
                console.log(arguments) //[10, 20, 30, 40, 50]
            }
    
            function fn(...b) {
                console.log(b) //[10, 20, 30, 40, 50]
                console.log(arguments) //[10, 20, 30, 40, 50]
            }
    
            function fn2(a, ...b) {
                console.log(b) //[ 20, 30, 40, 50]
                console.log(arguments) //[10, 20, 30, 40, 50]
            }
            fn(10, 20, 30, 40, 50)
            fn1(10, 20, 30, 40, 50)
            fn2(10, 20, 30, 40, 50)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值