• vue中的this指向问题


    1、※  对于普通函数(包括匿名函数),this指的是直接的调用者,在非严格模式下,如果没有直接调用者,this指的是window。showMessage1()里setTimeout使用了匿名函数,this指向window。

    2、※  箭头函数是没有自己的this,在它内部使用的this是由它定义的宿主对象?决定。showMessage2()里定义的箭头函数宿主对象为vue实例,所以它里面使用的this指向vue实例。

    注:
    【普通函数的this
         普通函数的this是由动态作用域决定,它总指向于它的直接调用者。具体可以分为以下四项:
    this总是指向它的直接调用者, 例如 obj.func() ,那么func()里的this指的是obj。
    在默认情况(非严格模式,未使用 'use strict'),如果函数没有直接调用者,this为window
    在严格模式下,如果函数没有直接调者,this为undefined
    使用call,apply,bind绑定的,this指的是绑定的对象
     
    1)全局函数中的this指向window
    2)对象中的方法(函数)中的this,指向对象,理解:obj.m=function(){},m和fn等价,因此调用m也相当于调用fn,原理同3)
    3)构造函数中的this指向调用该构造函数的实例对象
    4)特殊this指向:
    箭头函数没有绑定this,this继承自外围作用域,理解:查看上一层级的函数的this的指向,继承它!!
    5)绑定this指向:
  • 相关阅读:
    创建用户中遇到的问题
    创建用户和用户组
    ActiveMq在linxu系统上的启动
    CentOs 6.5 安装jdk
    卸载CentOs6.5自带的OpenJDK
    centos 6.5 添加ip地址
    CentOs 6.5的安装
    jna的简单测试
    电脑硬盘空间怎么越来越小
    build path contains duplicate entry:'src' for project 'XXX'
  • 原文地址:https://www.cnblogs.com/shary-blue/p/14308485.html
Copyright © 2020-2023  润新知