var red = {a: 2};
red.fn = function(b){
console.log("A: "+a ", B : "+b);
}
red.fn(20);
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
a没有定义
但我怀疑a已经可以作为函数的全局对象,fn那么为什么它不可访问.任何解释都会有所帮助.
因为与其他一些语言不同,this.限定符在JavaScript中不是可选的(因为它的工作原理与大多数其他语言的工作方式不同this; 此处更多).你需要明确地写它:
red.fn = function(b){
console.log("A: " + this.a + ", B : " + b);
// ---------------------^^^^^
}
Run Code Online (Sandbox Code Playgroud)
(你也在+那里失踪......)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |