手動實現簡易Vue框架——Object.defineProperty

所謂“千里之行,始於足下;騏驥一躍,不能十步;駑馬十駕,功在不捨”,今天我準備從最簡單的步驟開始手寫一個簡易版的Vue

所用設計模式MVVM。

首先來來熟悉下  Object.defineProperty  這個api的使用,詳細請自行MDN查閱

    var obj = {}
    Object.defineProperty(obj, 'test', {
      configurable: true, // 可配置性
      writable: true, // 屬性可修改
      enumerable: true, // 屬性可枚舉
      value: 'yanglong'
    })

    // delete obj.test

    // obj.test = 1

    console.log(obj)
    for(let key in obj){
      console.log(key)
    }
var obj = {
    }
    let val = null
    Object.defineProperty(obj, 'test', {
      configurable: true, // 可配置性
      enumerable: true, // 屬性可枚舉
      get() {
        console.log('get')
        return val
      },
      set(newVal) {
        console.log('set')
        val = newVal
      }
    })

    obj.test = 'Mis.Yang'
    console.log(obj) // {test: 'Mis.Yang'}

 

摘自: Object.defineProperty

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章