function Foo() {
getName = function () {
alert(121);
}
return this
}
Foo().getName()
上面的代码为什么要return this
getName 为什么不用var
function Foo() {
getName = function () {
alert(121);
}
return this
}
Foo().getName()
上面的代码为什么要return this
getName 为什么不用var
1、return this
是为了链式调用。类似jquery的 $(dom).append('body').val('123')
2、getName 不用var为了把getName暴露给 window (return this == return window)。
Foo()返回this为调用Foo时的this,即global;不写会返回undefined
getName = xxx 没有使用var,即把getName声明到了global对象;
不写var这种行为很不好,感觉会被人骂的.
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
因为foo在全局环境下运行,所以this指向全局
getName没有用var,声明的是全局变量
foo().getName = this.getName()