其他分享
首页 > 其他分享> > this指向

this指向

作者:互联网

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //   this

        //  解析器在调用函数每次都会向函数内部传递进一个隐含的参数
        //  这个隐含的参数就是this  this指向的是一个对象、
        //  这个对象我们称位函数执行的上下文对象
        //  根据函数的调用方式的不同,this会指向不同的对象
        // 1 以函数的形式调用时this指向window
        // 2 以方法的形式调用时this指向调用方法的对象   
        // function fun(a, b) {
        //     // console.log(a, b);
        //     console.log(this); //Window {window: Window, self: Window, document: document, name: "", location: Location, …}
        // }
        // // fun(1, 2);//打印window

        // //创建一个对象
        // var obj = {
        //     name: 'liuyun',
        //     sayName: fun
        // };

        // var obj1 = {
        //     name: 'zhangxueyou',
        //     sayName: fun
        // };
        // console.log(obj.sayName() == fun()); //true
        // obj.sayName(); //打印obj对象
        // obj1.sayName(); //打印obj2对象

        // 创建一个变量
        var name = '全局变量';
        // 创建一个函数fun()
        function fun() {
            console.log(this); //如果不是this就需要每次调用时候修改this  如obj1.name   或者是   obj2.name
        }
        //创建一个对象
        var obj1 = {
            name: 'liuyun',
            sayName: fun
        }

        var obj2 = {
            name: 'jcw',
            sayName: fun
        }
        obj1.sayName(); //obj1
        obj2.sayName(); //obj2
    </script>
</body>

</html>

标签:obj1,obj2,name,指向,sayName,var,fun
来源: https://blog.csdn.net/weixin_52019215/article/details/113775075