json对象中 变量有时候需要用[] 包起来 才起作用

[key]    json对象中 变量有时候需要用[] 包起来 才起作用 。

var types = ['default', 'primary', 'warn']
var pageObject = {
  data: {
    defaultSize: 'default',
    primarySize: 'default',
    warnSize: 'default',
    disabled: false,
    plain: false,
    loading: false
  },
  setDisabled: function (e) {
    this.setData({
      disabled: !this.data.disabled
    })
  },
  setPlain: function (e) {
    this.setData({
      plain: !this.data.plain
    })
  },
  setLoading: function (e) {
    this.setData({
      loading: !this.data.loading
    })
  },
  onGotUserInfo: function (e) {
    console.log(e.detail.errMsg)
    console.log(e.detail.userInfo)
    console.log(e.detail.rawData)
  },
}

for (var i = 0; i < types.length; ++i) {
  (function (type) {
    pageObject[type] = function (e) {
      var key = type + 'Size'
      var changedData = {}
      changedData[key] =
        this.data[key] === 'default' ? 'mini' : 'default'
      this.setData(changedData)
      console.log('key:'+key)
      console.log('changedData:'+changedData)
      console.log(changedData)
      console.log('changedData.key:'+ changedData.key)
      console.log('changedData[key]:'+changedData[key])
      console.log('changedData.defaultSize:' + changedData.defaultSize)
      console.log('changedData[key]'+changedData[key])
      console.log('--------------------------------------------------------');
      console.log(key)
      console.log(changedData)
      console.log(changedData.key)
      console.log(changedData[key])
      console.log(changedData.defaultSize)
    }
  })(types[i])
}

Page(pageObject)
<button type="default" size="{{defaultSize}}" loading="{{loading}}" plain="{{plain}}"
		disabled="{{disabled}}" bindtap="default" hover-class="other-button-hover"> default </button>
<button type="primary" size="{{primarySize}}" loading="{{loading}}" plain="{{plain}}"
		disabled="{{disabled}}" bindtap="primary"> primary </button>
<button type="warn" size="{{warnSize}}" loading="{{loading}}" plain="{{plain}}"
		disabled="{{disabled}}" bindtap="warn"> warn </button>
<button bindtap="setDisabled">点击设置以上按钮disabled属性</button>
<button bindtap="setPlain">点击设置以上按钮plain属性</button>
<button bindtap="setLoading">点击设置以上按钮loading属性</button>
<button open-type="contact">进入客服会话</button>
<button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo">获取用户信息</button>
<button open-type="openSetting">打开授权设置页</button>
index.js? [sm]:41 key:defaultSize
index.js? [sm]:42 changedData:[object Object]
index.js? [sm]:43 {defaultSize: "mini"}
index.js? [sm]:44 changedData.key:undefined
index.js? [sm]:45 changedData[key]:mini
index.js? [sm]:46 changedData.defaultSize:mini
index.js? [sm]:47 changedData[key]mini
index.js? [sm]:48 --------------------------------------------------------
index.js? [sm]:49 defaultSize
index.js? [sm]:50 {defaultSize: "mini"}
index.js? [sm]:51 undefined
index.js? [sm]:52 mini
index.js? [sm]:53 mini

猜你喜欢

转载自blog.csdn.net/huawuque004/article/details/82957545