JavaScript闭包作用域与this

来源:互联网 发布:证件照拍照软件 编辑:程序博客网 时间:2024/05/06 22:18
    <script>        var name = "window";        var person = {            name:"zhangsan",            age:23,            say:function(){                return function(){                    return this.name;                }            }        }        /**         * 当完成person.say()之后,这个函数就调用结束了,在这个函数调用结束之前         * this是指向person,但是在调用匿名函数的时候,this就指向了window,所以         * 得到的结果是window。         */       alert(person.say()());    </script>

解决:

    <script>        var name = "window";        var person = {            name:"zhangsan",            age:23,            say:function(){                var that = this;                return function(){                    return that.name;                }            }        }       alert(person.say()());    </script>


0 0
原创粉丝点击