• 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则用于参数不确定的情况

  • 相关阅读:
    Sass变量、嵌套
    遮罩层2
    遮罩层
    大图轮播
    项目资料(主页)
    关于时间控制和制定时间日期
    dom作业
    js的dom操作和函数
    js数组去重
    js For循环练习。
  • 原文地址:https://www.cnblogs.com/zjpzjp/p/7376724.html
Copyright © 2020-2023  润新知