this通常用于指向当前对象。this的_职场新人进化论

2023-04-10 16:11:16 百科达人 次阅读 投稿:猿来不一样

this通常用于指向当前对象。this的_职场新人进化论

this通常用于指向当前对象。

this的值在函数被调用时是被动态计算的,它的值取决于函数的调用方式。

this的值可以分为以下4种情况:

默认绑定:如果一个函数不是作为对象的方法被调用时,那么它的this指向是全局对象,在浏览器中就是window对象,在node.js中就是global对象;

隐式绑定:如果一个函数作为对象方法被调用时,那么它的this指向就是该对象;

显示绑定:如果一个函数使用了apply()或者call()方法被调用,那么它的this值被显示绑定为函数调用时所传递的第一个参数。

new绑定:如果一个函数通过new关键字调用,那么它的this指向值是一个新创建的对象。

注意:如果一个函数同时满足多种绑定规则,那么优先级从高到低依次是new绑定-显示绑定-隐式绑定-默认绑定。

例:this的应用

let name = 'window'

function Person(name) {

 this.name = name

}

Person.prototype.sayName = function () {

 console.log(this.name)

}

let p1 = new Person('p1')

p1.sayName() // 输出 "p1"

let p2 = {

 name: 'p2',

 sayName: function () {

  console.log(this.name)

},

}

p2.sayName() // 输出 "p2"

查看原视频

「前端面试题」简述一下JavaScript中的this关键字