zoukankan      html  css  js  c++  java
  • Javascript 中的this指向

    1、作为对象的方法调用,this值当前对象

       var obj={
             name:"xiao",
              getName(){
    this.name //xiao } }
    obj.getName();

    2、作为普通函数调用  this指向window,  当一个函数体 ,自执行时,里面的this指向window,若想改变this  可以var that = this  

      var obj={
             name:"xiao",
              getName(){
    
                this.name   //xiao
      }  
    }    
    var fn = obj.getName
    
    fn();//undefined

    3、构造函数调用时   指new的对象

    function fn(name){
         this.name=name  
         return {
            name:'bb'
        }
    }
    
    var obj =new fn('gg')
    
    obj.name//  bb  this指返回的对象

    还有一种情况如果此时构造函数  显示的返回一个对象的话 那么this指向  返回的对象  而不是new的对象

    所以,如果构造函数返回一个非对象类型数据的话,就不会造成上面的问题

    4、call ,apply

    它们俩都是强制改变this指向,它们都是接受两个参数,第一个则是this,第二个是参数,

    apply要求第二个参数是一个集合  数组或者类数组,call则是单个参数,call一般用于参数确定的情况,apply则用于参数不确定的情况

  • 相关阅读:
    学习计划 23月
    bash学习笔记
    bash 中 while读取文件并通过 ssh执行命令出现的问题及解决方法
    bash 学习笔记2
    fedora 启动 openssh
    lesson5 键盘的应用
    第十三章 int指令
    第十五章 外中断
    第十二章 内中断
    第十四章 端口
  • 原文地址:https://www.cnblogs.com/zjpzjp/p/7376724.html
Copyright © 2011-2022 走看看