在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  HTML/ vuex中的這種操作是什么意思,數(shù)組作為函數(shù)名?

vuex中的這種操作是什么意思,數(shù)組作為函數(shù)名?

[types.CHANGE_LAYER_ZINDEX] (state, dir, index) {

...

}
如上,vuex中這是什么操作,將一個(gè)數(shù)組對象作為函數(shù)名么?

回答
編輯回答
絯孑氣

ES6中對象新增方法,屬性名表達(dá)式。

let obj = {
  ['h' + 'ello']() {
    return 'hi';
  }
};

obj.hello()

常量的寫法只是一種風(fēng)格,官方文檔也說了,不是必須使用的。

2017年9月28日 15:12
編輯回答
網(wǎng)妓

你理解錯了,可以參考一下我的代碼

const types = {ADD : 'add'}
class MyClass {

  constructor() {
    this.count = 0
  }

  [types.ADD] () {
       console.log(++this.count)
    }
}
let a = new Myclass()
a.add() //1
a[types.ADD] //2

他的意義在于 我 定義好 了一個(gè)常量 可以動態(tài)調(diào)用 該方法
這種寫法的好處 在于 降低了錯誤率,同時(shí)也降低了自由度
用 更高的可讀性 來替代 更自由的寫法
同時(shí) 提高了 可讀性,一次定義 其他引用此定義,更加規(guī)范
類比 java 的接口
比方說 你定義了 PI = 3.14 就可以直接引用了,這時(shí)你需要 PI 而不是每次都用3.14
就像上面 只給你了 這個(gè)類可操作的 動作,你就不可以再添加 東西了

ps
我把 babel 上面的 代碼扒下來了,參考一下

var _createClass = function () { 
    function defineProperties(target, props) { 
        for (var i = 0; i < props.length; i++) { 
            var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || 
            false;
            descriptor.configurable = true; 
            if ("value" in descriptor) 
            descriptor.writable = true; 
            Object.defineProperty(target, descriptor.key, descriptor); 
            } 
        } 
        return function (Constructor, protoProps, staticProps) { 
        if (protoProps) 
        defineProperties(Constructor.prototype, protoProps); 
        if (staticProps) 
            defineProperties(Constructor, staticProps); 
            return Constructor; 
            };
}();

function _classCallCheck(instance, Constructor)
    { 
        if (!(instance instanceof Constructor)) { 
        throw new TypeError("Cannot call a class as a function"); 
    } 
}

var types = { ADD: 'add' };

var MyClass = function () {
  function MyClass() {
    _classCallCheck(this, MyClass);

    this.count = 0;
  }

  _createClass(MyClass, [{
    key: types.ADD,
    value: function value() {
      console.log(++this.count);
    }
  }]);

  return MyClass;
}();

var a = new Myclass();
a.add(); //1
a[types.ADD]; //2
2017年6月17日 19:02
編輯回答
哎呦喂
[types.CHANGE_LAYER_ZINDEX]

這是es6里的計(jì)算屬性,在執(zhí)行的時(shí)候會把這個(gè)表達(dá)式求值,替換成真正的值調(diào)用

2017年2月21日 18:24