• JavaScript This -笔记


    参考文章:blog.crimx.com/2016/05/12/understanding-this/

    在es6箭头函数之前this是执行时候确定的,而非定义时候确定。
    函数都是被调用的,调用时找前面调用对象,有明确显示的就是明确显示的对象,没有记得看下隐藏的对象
    函数也是对象,函数可以作为一个对象的属性(此时称为方法)
    作为函数调用时,this绑定到全局对象,
    作为方法调用时,this绑定到该方法所属对象

    1.this在非严格模式下,就是window
    在严格模式下是undefined
    2.函数(或方法)在调用中,始终是对象在调用,
    显而易见的格式,obj.fun()这时this就是obj
    隐形的格式,fun()这时this是window,其实是这样window.fun(),在js中window直接隐藏不写了
    3.通过call和apply来改变this,call和apply无返回值
    参考“供爷”法则(a对象的方法作用到b对象上,a对象就是爷,要写在前面),格式Object.prototype.call()
    此时this指向的是call/apply第一个参数
    call和apply功能一样,只是第二个参数形式不一样call是列表形式参数,apply参数是数组形式
    4.bind改变this之后,call和apply不在生效,bind返回的是调用bind的函数
    bind执行时候this指向也是第一个参数
    5.new一个‘类’(js中的函数)时,this会绑定在新对象上
    function Test(){
    console.log(this)
    }
    new Test()// Test{}会先绑定到一个空对象上
    6.箭头函数
    在哪里创建this就指向谁

  • 相关阅读:
    VUE项目爬坑---3、vue route的编程式导航
    js的getBoundingClientRect的用法
    iphone真机开发流程之--证书申请
    提交App到Apple Store(Xcode4)
    iPhone应用提交流程:如何将App程序发布到App Store?
    反编译Apk得到Java源代码
    jquery mobile 自定义图标
    Phonegap通过JS访问本地接口的两种方法
    jQuery插件开发
    Android_HTML解析器_jsoup
  • 原文地址:https://www.cnblogs.com/victory820/p/6881648.html
Copyright © 2020-2023  润新知