关于javascript:如何通过闭包对象管理程序中状态的变化学习笔记-day3

值的不可变
原始类型
不可能扭转一个原始类型的值
对象类型
值是可变的
React.js中的props 和state
props
通常是作为一个内部参数,传入到函数里。
作为动态元素输入在UI中渲染。
state
是一个外部变量。
作为动静元素输入在UI中渲染。
props和state 都是用对象来存储状态的。
构造值不可变
props和state是不是必须的?
props是必须的,state不是
如果利用和用户之间有交互,就须要治理值的状态,和围绕值设计一些列行为。这个过程中,咱们须要思考的就是一个值的构造不可变的问题
闭包和对象
这两者都能够对一个状态值进行封装和创立因为。
闭包最大特点是能够冲破生命周期和作用域的限度
当一个内部函数内嵌一个外部函数时,如果内嵌函数援用了内部函数的变量,这个变量就会冲破生命周期的限度,在函数完结执行后,依然存在。
冲破作用域的限度是指,咱们能够把一个外部函数返回成一个办法在内部调用。
单纯从值的状态治理和围绕它的一系列行为的角度来看,咱们能够说闭包和对象是同状态的(isomorphic)。
差别:在隐衷、状态拷贝、性能。在结构性的解决值的问题,具备不同的优劣势
属性的查改
闭包:除非通过接口,也就在内部函数中返回外部函数的办法,不然外部是不对外的
对象:不须要非凡的形式,就能够获取对象中的属性和从新赋值;Object.freeze()-将对象设置为只读>writable: false
状态的拷贝
如何解决拷贝性能问题?

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据