js prototype 原型链继承

 子可以继承父;但父不能继承子

1.实例化继承.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        function a(){

        };
        a.prototype.c  =10 ; //给a的原型上加一个c的属性
        function b(){

        };
        b.prototype = new a(); //把实例化的a 赋给B的原型
        console.log(new b().c) //实例出来的b会拥有a的方法; 10
    </script>
</body>
</html>

2.call的理解:

   call 方式改变this指向 并且调用一次当前的函数 ,

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
        function a(){
            console.log(this)
        }
        a.call(1)
    </script>
</body>
</html>

 call 从第二个参数到之后参数就是调用函数的形参的第二个到之后的

   function a(x,y,z){
            console.log(this,z,y,x)
        }
        a.call(1,2,3,4)

 

 3.call 的demo:

     /*
            当前的this为B的this把它放入a里面,传入a方法;
            改变了a的this,
            结果a的this变成了B 的 this,
            最后拿到了 K 再次回到了b这个方法
           */

   function a(){
           this.k = 10;
        }
       function b(){
           a.call(this)
           /*
            当前的this为B的this把它放入a里面,传入a方法;
            改变了a的this,
            结果a的this变成了B 的 this,
            最后拿到了 K 再次回到了b这个方法
           */
       }
       new b().k
       console.log(new b().k) //10

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周家大小姐.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值