Web前端必做笔记之一:原型对象(三)原型继承与原型链

本文探讨了JavaScript中的原型对象和原型链概念。通过示例展示了如何使用ES5实现继承,例如创建User和Admin构造函数,并通过Admin.prototype = new User()实现继承。当调用admin.login()时,解释了JavaScript如何沿着原型链查找login方法,直至找到Object.prototype作为最顶层原型。

Web前端必做笔记之一:原型对象(三)原型继承与原型链

<script>
       //ES5继承:prototype(原型)
       //用ES5来实现继承
       function  User(username,password){
                this.username = username;
                this.password = paddword;
                this.login = function(){
                        console.log("登录")
                }
       }

       function  Admin(){
                this.deletePetson = function(){
                        console.log("删除一个人");
                }
       }


       Admin.prototype = new User();
       let admin = new Admin();
       admin.login(); //登录
</script>
 这里我们思考一个问题
 admin的原型是prototype,那prototype是一个对象,那prototype是否还有原型?是有的
 admin调用loginfang方法,它会直接在admin这个对象上找有没有login方法,没有login方法就会去它原型上查找
 看到原型上有这个方法,就进行调用。
 假设它原型上也没login方法,那它就会在prototype的原型上查找,也就是它一直往上查找,一直找到有为止,有就输出,没有就报错 
 这就是原型链
 而它的最上层原型是Object原型(Object.prototype).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值