课程咨询 :0535-6582277
QQ:2720475033

  • JavaScript中this默认绑定模式

    发布:烟台java培训      来源:烟台java培训      时间:2016-10-12

  • “this”这个学过编程的都知道,它可以说是 javascript 中最耐人寻味的一个特性,就像高中英语里各种时态,比如被动时态,过去时,现在时,过去进行时一样,无论弄错过多少次,下一次依然可能弄错。烟台java培训小编在这里跟大家探讨一下JavaScript中this默认绑定模式。

    烟台Java培训

    javascript中 ,最常用的函数调用类型就是独立函数调用,因此可以把这条规则看作是无法应用其他规则时的默认规则。如果在调用函数的时候,函数不带任何修饰,也就是“光秃秃”的调用,那就会应用默认绑定规则

    function sayLocation() {

        console.log(this.atWhere)

    }

    var atWhere = "I am in global"

    sayLocation() // 默认绑定,this绑定在全局对象,输出 “I am in global”

    再看一个例子

    var name = "global"

    function person() {

        console.log(this.name) //  (1) "global"

          person.name = 'inside'

        function sayName() {

            console.log(this.name) // (2) "global"  不是 "inside"

        }

        sayName() // 在person函数内部执行sayName函数,this指向的同样是全局的对象

    }

    person()

    在这个例子中,person 函数在全局作用域中被调用,因此第(1)句中的 this 就绑定在了全局对象上(在浏览器中是是window,在node中就是global),因此第(1)句自然输出的是一个全局对象的 name 属性,当然就是"global"了。sayName函数在person函数内调用,即使这样第(2)句中的this指代的仍然是全局对象,即使 person 函数设置了 name 属性。

    这就是默认绑定规则,它是 javascript 中最常见的一种函数调用模式,this 的绑定规则也是四种绑定规则中最简单的一种,就是函数在哪个作用域被调用,this 就绑定在这个作用域上。

    如果你还有什么疑问,就来烟台Java培训班咨询吧。

上一篇:面向对象的实现思路及原型概念

下一篇:JavaScript中this的隐式绑定模式

最新开班日期  |  更多

java--名企定制班

java--名企定制班

开班日期:6月30日

java--零基础脱产班

java--零基础脱产班

开班日期:6月30日

java--在职提升班

java--在职提升班

开班日期:6月30日

java--精品业余班

java--精品业余班

开班日期:6月30日

2001-2017 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56