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>
  • 相关阅读:
    201301 JAVA题目0-1级, 华为笔试题
    病毒传播, 美团笔试题
    OC基础 字符串
    IOS OC语言基础(一)类的创建
    pyautogui 鼠标精灵模拟登陆
    ajax hook注入
    aiohttp异步请求
    IOS自学教程大全
    提高python工具包
    Kafka与Flume区别
  • 原文地址:https://www.cnblogs.com/JDotNet/p/3436598.html
Copyright © 2011-2022 走看看