代码改变世界

javascript self或者that用法

2012-12-13 17:11  Li Qian  阅读(309)  评论(0)    收藏  举报
<html>
<script>

var Cls = (function (clas){
    function cla(){
        var mem = 0;
        var self = this;
        this.fuc = function(){
            alert(mem);
            fuc2();
        }
        
        var fuc2 = function fuc2(){
            alert(self);//显示结果为[object Object]表明是callee对象;如果是alert(this),结果为[object Window],this指向了Window对象
        }
    }

    return cla;
})(Cls || (Cls = {}));

var c = new Cls();
c.fuc();
//c.fun2();//无法访问,fun2类似于私有方法
</script>

</html>

按照惯例,我们给出一个私有的 self 参数。这个可以令对象对私有方法可见。这种做法是因为ECMAScript Language Specification中的一个错误,这个错误令 this 不能正确地对内部函数设置。

http://www.cnblogs.com/autocrat/articles/2816611.html