为什么返回未定义
Why does this return undefined?
var TTT = {
canvas : document.getElementById('canvas'),
ctx : canvas.getContext('2d'),
cH : 600,
cW : 600,
// tile dimensions
tH : this.cH / 3,
tW : this.cW / 3
};
// returns undefined... why?
console.log(TTT.tH);
这一定是非常简单的事情,但我似乎无法理解为什么这是未定义的......
当你设置 TTT.tH
和 tW
时,this
指的是周围的上下文,而不是对象本身。您目前也无法将其设置为 TTT.cH
,因为它尚未定义。您可以做的是在最初定义对象后设置它们。
var TTT = {
canvas : document.getElementById('canvas'),
ctx : canvas.getContext('2d'),
cH : 600,
cW : 600
};
// tile dimensions
TTT.tH = TTT.cH / 3;
TTT.tW = TTT.cW / 3;
// returns undefined... why?
console.log(TTT.tH);
编辑:正如Oriol在评论中指出的那样,您也需要为TTT.ctx
执行此操作,因为尚未定义canvas
。
除了我上面发布的答案之外,还有第二种完全不同的方法。那是通过使用吸气剂和二传手。
如果您不关心以后能够重置TTT.tH
和TTT.tW
,您可以将它们定义为 getter:
var TTT = {
canvas : document.getElementById('canvas'),
ctx : canvas.getContext('2d'),
cH : 600,
cW : 600,
// tile dimensions
get tH() { return this.cH / 3 },
get tW() { return this.cW / 3 }
};
// returns undefined... why?
console.log(TTT.tH);
在这里,它被定义为一个函数,所以this
确实会在那里工作。
相关文章:
- 这.SOMETHING 总是返回未定义的 - extjs
- React+Meteor:this.ops返回未定义
- "日期“;AJAX请求返回的类型值未定义
- Regex提取URL返回数组的一部分;未定义”;
- 换行符拆分返回“”;未定义”;
- 解析-为什么user.getSessionToken()返回未定义的结果
- Javascript函数返回未定义
- JavaScript-获取数据属性的值返回未定义的值
- .val()返回未定义的.text返回随机代码
- 为什么innerHTML返回“未定义”
- "这个“;正在返回未定义的
- 函数jquery的未定义返回
- 为什么typeof的数组的数组的未定义值返回为“0”;未定义的“;我的条件不认为是真的
- winJS 从函数未定义返回 var
- $.get jquery 中的未定义返回
- Javascript 函数未定义返回
- 数据 ID 一直未定义返回
- 函数调用Javascritpt的未定义返回值
- 在函数中提示未定义返回.(问题)范围
- JSON字符串的未定义返回