JavaScript this的使用

为什么创建全局变量this就可以获取值,而创建局部变量this就无法获取值了,这是为什么


<script>
        //this调用的变量可以通过两种方式获取值
        var str = "第一种: 直接赋值<br/>";
        var arge = "在方法外部创建对象,在方法内部通过this调用,这时,this将指向window";
        function write() {
            document.write(this.str , this.arge , "<br/>");
        }
        write();
    </script>
    <script>
        var obj = {
            str : "第二种: 方法调用<br/>",
            arge : "将需要调用的参数写在一个变量中,然后通过方法进行调用,这时,this将指向obj"
        }
        write.apply(obj);
        //也可以直接写在方法的参数列表中,如果不想写在列表中,那就只写对象名称即可
        function write() {
            var str = "str";
            var agre = "arge";
            document.write(this.str , this.arge , "<br/>");
            //注意:这么写是无法获取值的
        }
        write();
    </script>

img

Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args-->arguments)