我注意到,似乎没有明确解释this
关键字是什么以及如何在Stack Overflow站点上的JavaScript中正确(和错误地)使用它.
我亲眼目睹了一些非常奇怪的行为,并且无法理解为什么会发生这种行为.
this
工作如何以及何时使用?
假设我有以下功能:
function foo() {
}
function bar() {
}
Run Code Online (Sandbox Code Playgroud)
我可以在上面写为Object Literal表示法:
var Baz = {
foo: function() {
},
bar: function() {
}
};
Run Code Online (Sandbox Code Playgroud)
据我所知,在后一种情况下,无论是否调用任何Baz函数,脚本加载时都会创建一个Baz实例.在前一种情况下,仅在调用该函数时才创建函数对象.我对这些假设是否正确?
如果我是正确的那么前者将具有比后者在很少调用这些函数的应用程序中更高的性能(更少的内存).但后者的优势在于它提供了更大的模块化和更低的全局命名空间污染.
您从专业经验中对此有何看法?有速度差吗?