this指针

(1)普通函数中的this指向:
this指向普通函数中的调用者;

<script type="text/javascript">
    //普通函数;、
    /*
        调用普通函数时,this的指向是window;
        本质:window.fn();调用的。
    */
        function fn(){
            console.log(this);
        }
        fn();
        //定义一个全局变量其实就是给window添加属性
        var name = "王五";
        function obj(){
            var name = "张三";
            console.log(this);
            console.log(this.name);  //this 指向的是window 找window中的name;
        }
        obj();
        //运行结果: window;王五;
        var obj1 = {
            name:"赵六",
            sayName:function(){
                console.log(this.name);//this指向obj1;
            }
        }
        obj1.sayName();  //obj1调用sayName;所以this指向obj1;
        //总结:this在普通函数中的指向;谁调用函数的执行,函数中this就会指向谁。
    </script>

通过call和apply改变函数内部this的指向:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <script type="text/javascript">
        //call是function数据类型提供的一种方法,修改被调函数内部指针的指向。
        var name = "王五";
        var one = {
            name:"张三"
        };
        var two = {
            name:"李四"
        };
        function getName() {
            console.log(this.name);
        }
        //普通函数调用this指向的是window;
        getName();
        //改变函数中的this指针的指向。
        getName.call(one);
        getName.apply(two);
        //js中指针不能指向Null;
        getName.call(null);   //不能被修改。this指向window;
        //call和 apply的作用和用法十一样的,只是子啊传递参数的时候,call把所需要的函数参数依次列举出来,而apply需要把函数的参数放在一个数组中。
    </script>
</head>
<body>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容