zoukankan      html  css  js  c++  java
  • JavaScript函数中this的理解

    this:函数运行时,自动生成的内部对象,代表当前调用该函数的对象,this只能在函数内部使用。

    存在下面四种情况的this用法:

    1、this指向全局对象global
    <script type="text/javascript">
                var o = 0;
                function test() {
                    var o = 1;
                    return this.o;
                }
                alert(test());//0
            </script>
    2、函数作为对象的方法,this指向该对象
    <script type="text/javascript">
                var o = 0;
    
                function test() {
                    return this.o;
                }
    
                var obj = {};
                obj.o = 1;
                obj.m = test;
                alert(obj.m());//1
            </script>
    3、函数作为对象的构造函数,this指向使用该构造函数new出来的对象
    <script type="text/javascript">
                var o = 0;
    
                function test() {
                    var o = 2;
                    return this.o;
                }
    
                var obj = new test();
                obj.o = 1;
                alert(obj.o);//1
            </script>
    4、使用apply方法改变函数中this的指向
    <script type="text/javascript">
                var o = 0;
    
                function test() {
                    return this.o;
                }
    
                var obj = new test();
                obj.o = 1;
                obj.m = test;
    
                var obj1 = {};
                obj1.o = 2;
    
                alert(obj.m.apply());//参数为空则默认使用global对象劫持obj.m方法,所以test方法中的this指向了global对象,所以输出0
                alert(obj.m.apply(obj1));//此时test方法中的this指向了obj1对象,所以输出2
            </script>
  • 相关阅读:
    用asp.net(C#)写的论坛
    javascript:window.history.go(1)什么意思啊?
    5个有趣的 JavaScript 代码片段
    marquee属性的使用说明
    flash网站欣赏
    获取验证码程序
    ACCESS中执行sql语句
    靠谱的工程师
    mysql变量(用户+系统)
    理解进程和线程
  • 原文地址:https://www.cnblogs.com/JDotNet/p/3436598.html
Copyright © 2011-2022 走看看