Web全栈工程师之路(三)——JavaScript篇(十七)——this

以下是html代码,个人建议放在IDE里运行,边看效果,边学习~

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>this</title>
    <script type="text/javascript">

    /*
        解析器在调用函数每次都会向函数内部传递一个隐含的参数:this
        this指向一个对象,这个对象我们称为函数执行的上下文对象
        根据函数的调用方式的不同,this会指向不同的对象
            1.以函数形式调用时,this永远是Window
            2.以方法形式调用时,this就是调用方法的那个对象
    */

        function fun(a,b){
            console.log(this);
        }
        fun(1,2); //输出Window(以函数形式调用),即fun(1,2)相当于window.fun(1,2)

        var obj = {
            name:"李耳",
            sayName:fun
        };

        var obj2 = {
            name:"老子",
            sayName:fun
        };

        console.log(obj.sayName == fun); //sayName与fun一样
        obj.sayName(); //输出obj(以方法形式调用)
        obj2.sayName(); //输出obj2(以方法形式调用)
    </script>
</head>
<body>
    
</body>
</html>

 

posted @ 2020-09-06 17:50  骨桜  阅读(156)  评论(0)    收藏  举报