严格模式this

  1. 正常模式

    this的指向只有函数执行的时候才能确定,指向调用它的对象


  2. 全局作用域中的this

    在严格模式下,在全局作用域中,this指向window对象


  3. 全局作用域中函数中的this

    在严格模式下,这种函数中的this等于undefined


  4. 对象的函数(方法)中的this

    在严格模式下,对象的函数中的this指向调用函数的对象实例


  5. 构造函数的this

    在严格模式下,构造函数中的this指向构造函数创建的对象实例


  6. 事件处理函数中的this

    在严格模式下,在事件处理函数中,this指向触发事件的目标对象


  7. 内联事件处理函数中的this

    在严格模式下,在内联事件处理函数中,有以下两种情况:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <button onclick="alert((function(){'use strict'; return this})());">
    内联事件处理1
    </button>
    <!-- 警告窗口中的字符为undefined -->


    <button onclick="'use strict'; alert(this.tagName.toLowerCase());">
    内联事件处理2
    </button>
    <!-- 警告窗口中的字符为button -->