JS 继承 函数声明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jeekmary/article/details/82177443

JS拷贝继承

<script>
    //拷贝继承
    let Person = {
        name:"hb",
        age:35,
        paly:function () {
            console.log("我会玩耍")
        }
    };
    console.log("=====================");
    let  p2 = {};
    for (let key in Person){
        //这里可以取的是Person的键也就是name age play 而Person[key]就表示取里面的值
        p2[key] = Person[key];
        console.log(Person[key]);
        console.log(p2[key])
    }
    console.log("-------------------");
    console.log(p2.name);
    //当类中有原型属性的时候
    function Animal() {
    }
    Animal.prototype.p1 = "a1";
    Animal.prototype.p2 = "a2";
    Animal.prototype.run = function () {
        console.log("我在奔跑")
    };
    let dog = {};
    for (let pro in Animal.prototype){
        dog[pro] = Animal.prototype[pro]
    }
    dog.run()

</script>

继承的方式

继承主要是为了节省内存空间

  • 改变原型的指向:既能解决属性的继承也能解决方法的继承,但是容易造成属性的重复
  • 借用构造函数继承:解决属性问题,我不能解决方法的问题
  • 组合继承:继承解决属性的问题也能解决方法的问题
  • 拷贝继承:就是把对象中需要共享的属性复制到心得对象中

函数表达式和函数声明

    //函数声明
    if (true){
        function f1() {
            console.log("f1")
        }
    }else{
        function f1() {
            console.log("f2")
        }
    }
    f1()
    //但是这样做的话,在IE8中会出现问题,在谷歌浏览器中没有问题

    //函数表达式
    let ff;
    if (true){
        ff = function() {
            console.log("f1")
        }
    }else{
        ff = function(){
            console.log("f2")
        }
    }
    ff();
    //以后尽量用函数表达式也不要用函数声明

严格模式

    //严格模式的this以上的this都是普通模式下的this
    "use strict";//严格模式
    function f2() {
        console.log(this)
    }
    f2();

数组中的函数调用

  //数组中的函数调用
    arr= [
        function () {
            console.log("f1")
        },
        function () {
            console.log("f2")
        },
        function () {
            console.log("f3")
        },
        function () {
            console.log("f4")
        },
        function () {
            console.log("f5")
        }
    ];
    arr.forEach(function (ele) {
        ele();
    })

猜你喜欢

转载自blog.csdn.net/jeekmary/article/details/82177443