码迷,mamicode.com
首页 > 其他好文 > 详细

this的应用场景

时间:2020-06-20 19:08:38      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:pre   span   场景   lazy   变量   net   调用函数   对象   http   

作为对象方法调用

  • this作为对象的属性调用时,this指向该对象
  • this作为对象的属性被赋值给一个新的变量时,this指向window
 var obj = {
            x: "li",
            fortuneteller: function() {
                console.log(this);
            }
        }
        obj.fortuneteller() //指向obj
        var y = obj.fortuneteller
        y() //window

作为构造函数调用

  • 当函数作为构造函数调用时,this代表new出来的对象;
  • 如果没有使用new而是直接调用函数,this===window;
 function person() {
            this.name = "Fortuneteller",
                console.log(this);
        }
        var man = new person() //person
        person()//window

作为普通函数

         function fn() {
            return this
        }
        console.log(fn());//window

通过call(),apply().bind()改变this指向,this指向是传入的对象

共同点:都是改变函数的this指向问题
不同点:

  • function.call(this,对象,对象...)
  • function.apply(this,[对象,对象])
  • var ss=function.bind(this,对象,对象...)
  • call apply直接执行 bind没立即执行,函数再执行一遍

技术图片

 

this的应用场景

标签:pre   span   场景   lazy   变量   net   调用函数   对象   http   

原文地址:https://www.cnblogs.com/fortuneteller-li/p/13169209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!