<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ``` const data = { obj: { a: 1, b: 2 } } let value = data.obj Object.defineProperty(data, 'obj', { get() { //console.log('獲取'); return value }, set(val) { if (val === value) { return; //第三步 } //console.log('賦值'); value = val reder() //第二步 } }) data.obj = 90; //第四步 console.log(data.obj) //第一步 function reder() { console.log('渲染') } ``` ``` let data = { obj: { a: 1, b: 2 }, arr: [1, 2, 3] } //let value = data.obj //data.obj = 90; //第四步 //console.log(data.obj) //第一步 function reder() { console.log('渲染') } //第五步 function defineReactive(data, key, value) { observer(value) //第九步 Object.defineProperty(data, key, { get() { //console.log('獲取'); return value }, set(val) { if (val === value) { return; //第三步 } //console.log('賦值'); value = val reder() //第二步 } }) } const arrayProto = Array.prototype; const arratMethods = Object.create(arrayProto); ['shift', 'unshift', 'splic', 'sort', 'pop', 'push', 'reverse'].forEach(method => { arratMethods[method] = function() { arrayProto[method].call(this, ...arguments); reder(); } }) //第六步 function observer(data) { data.__proto__ = arratMethods; if (Array.isArray(data)) { return } if (typeof data === '') { for (let key in data) { defineReactive(data, key, date[key]) } } } observer(data) //第八步 data.obj = 90; data.arr = 80; // const oldPushFn = Array.prototype.push; // Array.prototype.push = function() { // oldPushFn.call(this, ...arguments) // reder() // } //data.arr.push(1) console.log(data.arr) function $set(data, key, value) { if (Array.isArray(data)) { data.splice(key, 1, value) return value; } defineReactive(data, key.value); reder() return value } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看