我知道我太复杂了,但我很好奇。
所以我有一个功能:
var setSize = function(selectedSize){
var split = {
size: val.sizes.split(','),
tcin: val.tcin.split(','),
idx: function(){
return this.size.indexOf(selectedSize);
}
};
console.log(split.idx)
}
HTML:
<p>choose a size</p>
<div onClick="setSize('small')>small</div>
问题:
这是否可能让split.idx的值为0
,而不是函数值。
答案 0 :(得分:2)
在现代浏览器中,您可以为idx
属性使用getter,使其成为计算属性。
程序员将以split.idx
的形式访问它,但该值仍将由函数计算。
此处有关获取者的详细信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get
var setSize = function(selectedSize){
var split = {
size: val.sizes.split(','),
tcin: val.tcin.split(','),
get idx() {
return this.size.indexOf(selectedSize);
}
};
console.log(split.idx)
}