首页 » JavaScript » 正文

this指向面试题

发表于: PHP,JS,Golang,Shopify学习交流博客 – 咪啪咪啪的小木屋 · 2022-4-15 ·  83 views  ·  0 replies 
<!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>
        var name = 222;
        var a = {
            name: 111,
            say: function(){
                console.log(this.name);
            }
        }

        var fun = a.say;
        fun(); // 函数直接调用相当于fun.call(window, 参数) 所以this指向window // 222
        a.say(); // 对象直接调用相当于a.say.call(a) 函数作为对象的方法被调用(谁调用我,就指向谁) // 111

        var b = {
            name: 333,
            say: function(fun){
                console.info('--fun--',fun);
                fun(); //不管怎么传递,这里都是直接调用函数 fun.call(window)
            }
        }

        b.say(a.say); // 222
        b.say = a.say;
        b.say(); //333
    </script>
</body>
</html>
«上一篇: :下一篇»

0 thoughts on “this指向面试题”

  1. 还没有任何评论,你来说两句吧

Leave a reply