知识点

一.判断是否是 Array的五种方法

1.Array.isArray()

2.Object.prototype.toString.call('查找对象’).includes("Array")

其中includes函数是判断 前面返回的字符串中是否包含Array 这个字段的。用indexOf()替换也可以。PS:indexOf是返回字符串中第一次出现字段的下标的,返回-1是找不到。

3.Array.prototype.isPrototypeOf()

4.查找对象 instanceof Array

5.构造方法

查找对象 constructor.toString().includes("Array")

二.js 继承

原型链继承

function Person(name){
    this.name = name,
    this.getName = function(){
        return this.name
    }
}
Person.prototype.age = 11;

function Man(){
    this.name = 'man'
}
Man.prototype = new Person()
var x = new Man()
console.log(x.age)

构造函数继承

PS:构造函数继承无法实现复用,因为他的方法都定义在构造函数中,不是原型中,且他也找不到父类原型中的属性,所以无法实现复用。

function Woman(name){
    Person.call(this,name)
}

组合函数继承

Woman.prototype = new Person();

原型继承

function content(obj){
    function f(){};
    f.prototype = obj;
    return new f();
}

寄生继承

function sup(obj){
    var sub = content(obj);
    sub.name = 'ss';
    return sub;
}

寄生组合继承

function Superman(){
    Person.call(this);
}
var con = content(new Person())
Superman.prototype = con;
con.constructor = Superman;
var a = new Superman()
console.log(a.getName())

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值