zoukankan      html  css  js  c++  java
  • JS-- this

    this简介

      this是JS中很重要的一个关键字,不是变量,也不是属性名,它总是指向一个对象;

      而这个对象是在运行时基于函数的执行环境动态绑定的;

      此外JS不允许为this赋值。

    this指向分类

      作为普通函数调用

      作为构造函数调用

      作为对象的方法调用

      call和apply调用

      作为普通函数调用

        当函数以普通函数的方式调用时,函数内的this在非严格模式下指向window,在严格模式下指向undefined

    var name = “global”;
    var person = {
        name: "tom",
        sayName: function () {
            console.log(this.name);
        }        
    }
    
    var printName = person.sayName;
    printName(); //global

      作为构造函数调用

        当函数通过new调用时,即以构造函数的方式调用,函数会返回一个对象,函数内部的this指向这个返回的对象

    function Person (name) {
        this.name = name;  
       console.log(this);   }

    var person = new Persosn("tom"); //{name: "tom"}

      作为对象的方法调用

        当函数作为某个对象的属性时,函数内部的this指向这个对象

    var person = {
        name: "tom",
        sayName: function () {
            console.log(this.name);
        }        
    }

    persosn.sayName(); //"tom"

      call和apply调用

        通过call,apply的方式调用函数,可以动态的改变传入函数中的this指向

    var sayName = function () {
      console.log(this.name);
    }

    var person1 = {
      name: "tom"
    }
    var person2 = {
      name: "lily"
    }

    sayName.call(person1); //"tom"
    sayName.call(person2); //"lily"
  • 相关阅读:
    java获得两个日期之间的所有月份
    Java设计模式之观察者模式
    SpringMVC项目配置
    Java设计模式之策略模式
    Tomcat源码
    线程池
    java内存模型
    JVM内存结构 JVM的类加载机制
    java虚拟机-垃圾回收算法
    并发容器-ConcurrentHashMap,CopyOnWriteArrayList
  • 原文地址:https://www.cnblogs.com/marton/p/10134673.html
Copyright © 2011-2022 走看看