zoukankan      html  css  js  c++  java
  • javascript this(上)

    javascript的this指向的是一个函数运行时动态绑定对象。

    this的4种常见的指向:

    作为对象的方法调用

    var obj={
        name:"姚小白",
        getName:function(){
            console.log(this === obj);
            console.log(this.name)
        }  
    }
    obj.getName();
    
    //true
    //姚小白

    函数被作为一个对象调用,所以this的指向了obj对象。

    作为普通函数调用

    在普通函数中,this指向的全局对象,也就是window对象。

    var name = "姚小白";
        var getName = function(){
            return this.name;
        }
    console.log(getName())
    
    //姚小白
    var name = "姚小白";
    var obj = {
       name:"July",
       getName:function(){
             return this.name;
       }
    }
    console.log(obj.getName())  //July
    var name1 = obj.getName;
    console.log(name1())        //姚小白
    console.log(obj.name)       //July
    console.log(this.name)      //姚小白

    在这个函数中,因为函数作用域的关系。当我们打印obj.getName();的时候,function(){return this.name;}  //July

    而在外层时候调用的则是  //姚小白

    在一些事件函数内部,如果还有一个普通函数调用。在那个函数内部会出现this指向window。所以建议在事件内部中的函数建议先将变量定义保存,如(var _this = this

    在ES5的严格模式(use strict)中this不会指向全局对象,返回的是undefined;

  • 相关阅读:
    [LeetCode] 226. Invert Binary Tree
    [LeetCode] 101. Symmetric Tree
    [LeetCode] 100. Same Tree
    [LeetCode] 104. Maximum Depth of Binary Tree
    [LeetCode] 280. Wiggle Sort
    [LeetCode] 42. Trapping Rain Water
    [LeetCode] 190. Reverse Bits
    [LeetCode] 144. Binary Tree Preorder Traversal
    [Leetcode] 58. Length of Last Word
    [LeetCode] 16. 3Sum Closest
  • 原文地址:https://www.cnblogs.com/youku/p/9404143.html
Copyright © 2011-2022 走看看