相关疑难解决方法(0)

"this"关键字如何运作?

我注意到,似乎没有明确解释this关键字是什么以及如何在Stack Overflow站点上的JavaScript中正确(和错误地)使用它.

我亲眼目睹了一些非常奇怪的行为,并且无法理解为什么会发生这种行为.

this工作如何以及何时使用?

javascript this

1243
推荐指数
16
解决办法
39万
查看次数

为什么Javascript没有正确绑定我的点表达式?

我想知道点抽象方法(例如dog.bark)是在运行时还是在编译时绑定.我的问题涉及以下代码,它会引发错误:

(true ? ''.toLowerCase : ''.toUpperCase)()
Run Code Online (Sandbox Code Playgroud)

但以下不是:

true ? ''.toLowerCase() : ''.toUpperCase()
Run Code Online (Sandbox Code Playgroud)

为什么我的字符串文字''在第一个例子中没有得到解决?

javascript oop

28
推荐指数
3
解决办法
2147
查看次数

如何在分配给变量时将方法绑定到原始上下文

由于函数在未作为对象属性[1]访问时被赋予"全局上下文",因此以下内容具有相同的特征:

const foo = ({bar}) => {
  bar(); // this === window
}
Run Code Online (Sandbox Code Playgroud)

因为它只是语法糖:

const foo = (x) => {
  var bar = x.bar;
  bar();
}
Run Code Online (Sandbox Code Playgroud)

因为我现在必须重新绑定或放弃糖,这对我来说似乎有点违反直觉.

有没有办法改变这种行为,以便不改变上下文(除了通过.apply/call/bind显式设置它)?是否有任何关于标准的计划/建议?

[1] Javascript在分配给其他变量时丢失了上下文

javascript this ecmascript-6

5
推荐指数
1
解决办法
85
查看次数

标签 统计

javascript ×3

this ×2

ecmascript-6 ×1

oop ×1