zoukankan      html  css  js  c++  java
  • 理解对象及对象的属性

    一:理解对象的属性

    属性类型:数据属性和访问器属性

    1数据属性:数据属性有四个描述其行为的特性

      1.1 Configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否将属性修改为访问器属性

      1.2 Enumerable:表示能否通过for-in循环返回属性,

      1.3 Writable:能够修改属性的值

      1.4 Value:包含这个属性的值,读取属性的值的时候在这里读取,写入属性的值,将新值保存在这个地方

    要修改属性默认的特性:Object.defineProperty(),该方法接收三个参数,属性所在的对象,属性的名字和属性的特性(描述符对象)

    注意1:一旦将属性的特性Configurable定义为false不可配置,就不能再将他变回可配置

    2访问器属性:访问器属性不包含数据值,它们包含一对getter和setter函数,访问器有四个特性

      2.1 Configurable

      2.2 Enumerable

      2.3 Get 在读取属性时调用的函数

      2.4 Set 在写入属性时调用的函数

    访问器属性不能直接定义,必须使用Object.defineProperty()来定义

    3读取属性的特性Object.getOwnPropertyDescriptor(),该方法接收两个参数,属性所在的对象,属性的名称,返回值是一个对象

    二:理解双向绑定

    双向数据绑定:将对象属性的变化绑定到UI,不管是对象属性的变化还是UI的改变,都会改变另外一方。

    双向绑定的底层思想:1我们需要一个方法来知道那个UI元素绑定了那个相对应的属性,2我们需要监视UI元素和属性的变化,3我们需要将变化传播到绑定的对象和UI上面

    发布-订阅模式:监听一个事件(订阅),触发事件(发布),移除事件

    脏值检查模式:在特定的事件下,去检测数据有没有改动

    数据劫持:通过Object.defineProperty()来劫持各个属性的getter与setter,来知道数据是否已经发生改变。

    vue.js的双向数据绑定就是发布-订阅与数据劫持的组合,通过Object.defineProperty()来劫持各个属性的getter与setter,然后在数据变动时发布给订阅者,触发相应的回调。

    三:理解对象

    四:对象的拷贝

    不忘初心,不负梦想
  • 相关阅读:
    VS GIT 使用入门---我只是搬运工
    虚拟机安装_1_wincc_matriton
    程序设计入门—Java语言 第六周编程题 1 单词长度(4分)
    程序设计入门—Java语言 第五周编程题 2井字棋(5分)
    JAVA入门 第五周 1多项式
    第四周编程作业 2念整数
    第四周编程作业 1素数和(5分)
    第3周作业第2题 数字和特征
    第3周作业第1题 奇偶个数
    第2周作业第2题信号报告
  • 原文地址:https://www.cnblogs.com/panrui1994/p/9002931.html
Copyright © 2011-2022 走看看