在函数中设置javascript中对象的值而不调用该函数

时间:2015-01-09 20:26:49

标签: javascript

我知道我太复杂了,但我很好奇。

所以我有一个功能:

 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,而不是函数值。

1 个答案:

答案 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)
   }