【发布时间】:2016-11-25 03:27:44
【问题描述】:
我正试图围绕 Javascript 中的绑定概念展开思考。
你能解释一下Javascript中的词法绑定、动态绑定和其他绑定技术吗?
Javascript 与 Lisp 有何不同?我不知道 Lisp,但我的搜索结果在那个链接中。
非常感谢。
编辑 1:
为什么不需要使用var that = this; 就可以工作?
function Person(name){
this.name = name;
setTimeout(() => {
console.log(this.name);
}, 100);
}
var me = new Person('Pristine'); // prints "Pristine"
如果我抛出一个function() 代替(),我会得到一个错误。
什么是词法绑定和作用域?一些进一步的例子,利用它的好用例?
【问题讨论】:
-
那里有很好的资源,请阅读它们和/或询问您想知道的更具体的问题。您的问题有点宽泛,将开始讨论
-
Stack Overflow 用于更集中的“对或错”类型的问题。这不是一个真正的讨论板。请务必查看 the help center 以了解 Stack Overflow 的热门话题。
-
直接到你的箭头函数问题。它们绑定到调用范围上下文。所以你不必做'var that = this'。
-
我认为您混淆了绑定和作用域的概念。您包含的示例与您的问题无关。对于绑定,您可以查看我的答案的解释。对于范围,您应该检查en.wikipedia.org/wiki/Scope_(computer_science) 范围是一个完全不同的概念,适用于程序员必须考虑对象和函数的范围的编程阶段。 @ste2425 回答了有关您提供的代码的问题。
标签: javascript angularjs node.js mean-stack