关于js中函数的一点总结

Posted zxq-zn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于js中函数的一点总结相关的知识,希望对你有一定的参考价值。

1函数中this作用域

this根据当前环境来决定作用域,可以使用call和apply的方法来改变当前的this指向

    <script>
        var name = "global";
        function fn(){
            console.log(this.name);
        };
        fn();//函数申明式,this指向全局,"global"
        var obj ={
            name:"object",
            say:function(){
                console.log(this.name);
            }
        }
        obj.say();//对象中调用,this指向当前对象,"object"
        function Person(){
            this.name="person";
            this.say=function(){
                console.log(this.name);
            }
        }
        var p = new Person();
        p.say();//构造函数中调用指向当前构造函数,“person”
    </script>

2函数的继承方法

构造函数和函数原型的继承

在构造函数里调用call,实现继承

    <script>
        function Parent(){
            this.name = "zzz";
            this.age = 233;
        };
        function Child(){
            Parent.call(this);
            this.favor = "dance";
        }
        var p = new Parent();
        var c = new Child();
        console.log(p);//{name: "zzz", age: 233}
        console.log(c);//{name: "zzz", age: 233, favor: "dance"}
    </script>

原型链的继承

    <script>
        function Parent(){
            this.name = "zzz";
            this.age = 23;
        };
        function Child(){
            this.favor = "dance";
        }
        Parent.prototype.id=233;
        Child.prototype = new Parent();
        var c = new Child();
        console.log(c.id);//233
    </script>

以上是关于关于js中函数的一点总结的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

关于JS中变量提升的规则和原理的一点理解

关于JS中函数的返回值的一点死思考

几个关于js数组方法reduce的经典片段

js关于立即执行函数的一点记录

js关于立即执行函数的一点记录