烟台Java培训
达内烟台中心

15265420612

热门课程

JavaScript中this默认绑定模式

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

“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开发吗?

达内庆祝15周年华诞,帮助50万年青人成功就业

第十一届达内英才添翼校企合作高峰论坛在贵阳召开

达内教育集团荣获得工信部“优秀培训基地”称号

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊