javascript - 视频中的可组合箭头函数示例?
问题描述
在观看视频教程时,主持人推荐了可组合的工厂函数,而不是使用绑定或箭头函数,但我想我已经看到了一个问题,想知道我是否理解正确,这里是代码:
const createDragon = element => ({
breathe() {
return `abcd efgh ${element}`
}
})
const newDragon = createDragon('fire');
console.log(newDragon.breathe());
与使用类语法相比,这种方式的缺点是 newDragon 对象将永远设置为“火”作为它的元素并且要更改它,您必须创建一个新对象?
如果它是一个具有元素属性的类实例,那么您可以只为该属性重新分配一个新值,我明白了吗?
解决方案
是的,在工厂参数上使用闭包(并且不提供 setter 方法),element
本质上是一个常量。这种模式非常适合在函数式编程中创建不可变对象。对于经典的 OOP 来说不是那么多。
推荐阅读
- android - 使用 androidx dropdownPreference 的正确方法是什么?
- ruby-on-rails - Active Storage:无法创建视频附件的图像预览
- dynamics-crm - 带扩展的 Dynamics CRM 365 Odata 查询性能不佳
- java - Java - 用函数将每个调用包装在一个块中
- c# - 有没有办法不显示 windows 窗体?
- haskell-stack - `stack build`进程退出,代码:ExitFailure 1
- pine-script - 您可以将自定义交易视图松树脚本添加到筛选器吗?
- r - 使用R在plolty中将悬停文本添加到箱线图
- node.js - 使用 2019 年巴西夏令时的节点
- php - xpath php 7 与 php 5.6