@强迫症福音:函数整理成类的5个原因
全文共2072字 , 预计学习时长8分钟
本文插图
图源:unsplash
不同函数具有不同的地位 , 类本质上是以某种方式相互关联的函数族 。 特定范围内二者具有共性 , 其工作内容也可能存在相似之处 。
但无论如何 , 有时最好将函数作为方法编写于对象中 。 即使乍眼一看不是如此 , 但事实上JavaScript本身是基于对象的概念构建的 。
类是如何工作的?为何要将函数转换为对象?下面5点将给出答案 。
本文插图
JavaScript中类的快速入门
JavaScript中的类是一种函数 , 正常情况下 , 您会这么写:
function catName(){ console.log(''Tibbers''); }
也可以用箭头表示法:
catName = () =>console.log(''Tibbers'');
这么做当然没有问题 , 但如果你有一堆与猫相关的函数 , 并想将它们附加到某个实例上呢?如果想操作时不需找出并告知代码具体实例目标 , 又该怎么做呢?
这就是“类”派上用场的地方 。
本文插图
图源:unsplash
【@强迫症福音:函数整理成类的5个原因】
类通常有两部分:属性(attributes)和方法(methods) 。 属性定义类的特定实例值 。 方法对这些属性执行特定操作 。 属性在构造函数中设置 , 方法通常以函数的形式出现在类中 。
因此 , “类”可能如下所示:
class Cat{ constructor(name, age, sound){ this.name = name; this.age = age; this.sound = sound; } speak = () => console.log(this.sound);name = () => console.log('hello, my nameis ' + this.name);age = () =>console.log('I am ' + this.age); }
这基本囊括了JavaScript中80%的类 。 另外20%涉及扩展和构造类的不同方法 , 这超出了本文的讨论范围 。 我们试图回答的问题是——为何应将函数整理成类 , 而非仅将其作为独立代码 。
本文插图
有组织性的函数更实用
函数的目的是为代码创建范围和边界 。 当您编写函数时 , 实际上是在对解释器说——嘿 , 我想要打包使用一些东西 。 编写类的过程实质上是在为你的代码创建另一层次的组织 。
高效实用的代码取决于用户用编程语言组织和传达思想的能力 。 而由于JavaScript编程语言的组织松散 , 代码容易陷入混乱无序状态 。 用户可以通过多种方式编写相同的内容 , 代码仍起作用 。
所以将函数整理成类的问题其实是一个组织问题 。 函数是一种组织方法 , 类正好使它进一步发展 。
本文插图
图源:unsplash
本文插图
防止突变
有一个误解 , 当您想保护变量不受突变影响时 , 需要阻止其更改 。
然而 , 变异与变量的形状有关 , 而非实际变量本身 。 变量的值可以更改 , 而形状不能 。
例如 , 查看以下对象:
Tibbers = { name:''Tibbers'', type: ''cat'', color: ''ginger'' }
当前形式的对象不受突变保护 , 因为你可以这样做:
Tibbers.owner = ''Aphinya'';
通过添加另一个密钥对值 , 可以更改对象的形状 。 但是 , 如果使用类将对象Tibbers实例化 , 则可以防止这种情况 。 你可以尝试传递一个新值 , 但它不会起任何作用 。
推荐阅读
- 李兆香|用rept函数给客户进行自动五星级评定
- Excel函数与VBA实例|向左查询只会vlookup函数就out了,这两组函数公式效率更高
- 科技金属肖|变形金刚迷的超级福音!iQOO 3变形金刚限量版即将开售
- 小亚爱科技|OPPO发布福音战士限定版,魅族也发布了一款山东舰定制版
- 手机|OPPO Ace2 新世纪福音战士限定版评测
- |最前线丨福音战士又有联名,与OPPO合作推出ACE2定制款
- |连卡针都不放过的深度定制,OPPO Ace2 新世纪福音战士限定版正式发布
- 「」IF函数这样用,还不会的打屁屁
- 材料material顶级论文:盲人的福音?神奇钙钛矿,助力高质量人造眼睛
- 互联网圈里人微信黑暗模式强迫症人士有救了,微信更新,允许用户手动选择开关
