javascript面向对象(this)

来源:互联网 发布:淘宝网怎么盈利 编辑:程序博客网 时间:2024/05/18 23:14

由于其运行期绑定的特性,JavaScript 中的 this 含义要丰富得多,它可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式。JavaScript 中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用。

在 JavaScript 中,函数也是对象,因此函数可以作为一个对象的属性,此时该函数被称为该对象的方法,在使用这种调用方式时,this 被自然绑定到该对象。

让我们再一次重申,在 JavaScript 中函数也是对象,对象则有方法,apply 和 call 就是函数对象的方法。这两个方法异常强大,他们允许切换函数执行的上下文环境(context),即 this 绑定的对象。很多 JavaScript 中的技巧以及类库都用到了该方法.

 <script type="text/javascript">
        function People()
        {    //this的作用是创建一个对象的成员变量
            //var name = "张三"; 定义的是方法中的局部变量
            this.name = "李四";//定义的是属性,说明这个属性属于People创建的这个成员
            alert(this.name);
            function Person()
            {
                alert(this.name);
                function man()
                {
                    alert(this.name);
                }
                man.call(this);//通过this实现层层传参数
            }
            Person.call(this);
        }
        
        var p = new People();
        alert(p.name);
    </script>

原创粉丝点击