this的应用场景

Posted fortuneteller-li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this的应用场景相关的知识,希望对你有一定的参考价值。

作为对象方法调用

  • 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的应用场景的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0 代码功能片段

11.按要求编写Java应用程序。 创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的(代码片段

css有用的代码片段

ReentrantReadWriteLock场景应用

BootStrap有用代码片段(持续总结)

ngx-translate实现国际化:this.translate.use()this.translate.get()this.translate.instant()onLangChange(代码片段