Object.defineProperty理解

html

<div id="app">
    <span>firstName:</span>
    <input type="text" id="firstName" value="" /><br />
    <span>lastName:</span>
    <input type="text" id="lastName" value="" /><br />
    <!-- <span>fullName(vue计算) :</span>
    <input type="text" id="fullName" /><br />
    <span>fullName1(vue监视) :</span>
    <input type="text" id="fullName1" /><br /> -->
    <span>fullName2(原生js):</span>
    <input type="text" id="fullName2" value="" />
  </div>

js

<script type="text/javascript">
  let obj = {
    firstName: 'babao',
    lastName: 'wang',
    fullName2: 'baobao-wang'
  }
  // 使用Object.definproperty来设置fullname2的属性
  Object.defineProperty(obj, 'fullName2', {
    // 1.数据描述符(属性)
    // value: 'yong-he',
    configurable: true, //是否可以删除
    enumerable: true, //是否可遍历
    // writable: false, //是否可修改

    // 2.存取描述符(访问)
    get: function () {
      return this.firstName + "-" + this.lastName
    },
    set: function (value) {
      const [lastName, firstName] = value.split('-')
      this.firstName = firstName
      this.lastName = lastName
    }
  })


  obj.fullName2 = "yong-he"
  console.log(obj);

  // 获取dom
  const firstN = document.getElementById('firstName')
  const lastN = document.getElementById('lastName')
  const fullN = document.getElementById('fullName2')
  // 添值
  firstN.value = obj.firstName
  lastN.value = obj.lastName
  fullN.value = obj.fullName2
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值