这个问题似乎令人困惑,所以让我解释一下:
我正在使用以下代码段:
sy: 100,
sx: 50,
x: 30,
y: height - this.sy,
我在函数中使用了“ y”,但该函数似乎无法正常工作,所以我做了alert(y); 告诉我'v'的值为'NaN'。然后,我使用typeof运算符测试了“ y”,并告诉我它的类型为“ number”。我知道数字可以是“数字”类型,但仍然不是数字,因此我意识到问题出在“ this.sy”部分。我认为'this'仅用于函数,那么在仍然在数组内部时如何访问'sy'?(高度已在数组外部定义)
更新:请参见上面的getter答案,该答案允许语法类似于属性,同时仍将实现保留为函数。需要注意的一件事是,getter是只读的,因此,如果执行obj.y = 4,则不会更改该值。这可能被认为是不利的一面,它可能会使用户相信它可以更改。详细信息,包括哪些浏览器受支持,在这里:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/get
原始答案:您需要使ya功能:
var obj = {
...
y : function () {
return this.height - this.sy;
},
...
}
警报(obj.y());
我假设height是您已经定义的属性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句