JavaScript的原型链

在这里插入图片描述

          function Hero(name,weapon,equipment,blood){
            this.name=name;
            this.weapon=weapon;
            this.equipment=equipment;
            this.blood=blood;
        }
        
        Hero.prototype.attack=function(){
                console.log(this.name+':攻击');
            }
        //通过Hero的构造函数创建的对象,可以访问Hero.prototype中的成员
        var hero1=new Hero('li忠','弓箭',['头盔','鞋子'],100);
        var hero2=new Hero('刘备','弓箭',['头盔','鞋子'],100);
        hero1.attack();
        hero2.attack();
        console.log(hero1.attack()===hero2.attack());  //判断hero1中的attack方法与hero2中的attack方法在内存中是否占得同一块空间
        console.dir(hero2); //查看对象的内容
        //由原型链可知,当调用对象的属性或方法的时候,先去找对象本身的属性/方法,如果对象没有该属性或者方法,此时去找该构造函数的原型中是否有此属性/方法,
        //如果没有该属性,则去找Object原型对象中是否存在,如果没有,则去null中去查找,如果还是没有,会报错
        //hero1.__proto__ : 对象的__proto__等于构造函数的Student.prototype
        //__proto__属性是非标准属性。作用:作为对象的属性去指向构造函数的prototype,以此来让对象可以访问原型中的成员/方法

        //在原型中有一个属性 constructor 构造函数
        //constructor 作用: 记录了创建该对象的构造函数
        console.log(hero2.constructor);

        var arr=[];  //数组本身也是一个对象,对象就有constructor属性
        console.log(arr.constructor); //可以看出数组的默认构造函数是Array
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值