组件,隔离功能和“参照透明性”

用户名

我有一个涉及cyclejs组件的(而不是哲学上的)问题isolate()是否引用透明?

查看此后复制的简化代码,我无法区分“杂质”的任何来源。是因为未简化的代码引入了它,还是因为函数将返回带有两个不同引用的两个不同对象?

在那种情况下,这两个对象是否具有相同的行为(即在相同的目标上侦听和响应相同的事件,并产生不同的vTree $但封装了完全相同的序列?)。如果是这样的话,那两个对象是不是本质上是相同的,即在程序中的任何地方都被另一个对象替换不应该改变任何东西?哪种方法isolate是参照透明的?我哪里做错了?

实际上,如果两个调用都返回了无法替换的不同对象,那么这些对象有何不同?

function isolate(Component, scope) {
  return function IsolatedComponent(sources) {
    const {isolateSource, isolateSink} = sources.DOM;
    const isolatedDOMSource = isolateSource(sources.DOM, scope);
    const sinks = Component({DOM: isolatedDOMSource});
    const isolatedDOMSink = isolateSink(sinks.DOM, scope);
    return {
      DOM: isolatedDOMSink
    };
  };
}
安德烈·斯塔尔兹(AndréStaltz)

我无法区分“杂质”的任何来源。是因为未简化的代码引入了它,还是因为函数将返回带有两个不同引用的两个不同对象?

简化的代码不会引入杂质。杂质来自以下事实:如果未指定该参数scopenewScope()默认为的实际实现isolate()有:

function isolate(dataflowComponent, scope = newScope()) {
  // ...
}

哪里newScope()是:

let counter = 0

function newScope() {
  return `cycle${++counter}`
}

意思是,如果scope没有将用作参数,则默认为counter每次isolate()调用时递增的隐藏全局变量的下一个值

总之,isolate(component, scope)由于我们给出了scope所以是参照透明的,但isolate(component)不是。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

纯度,参照透明性和状态单价

来自分类Dev

例外情况和参照透明性

来自分类Dev

定义参考透明性和确定性功能之间有什么区别?

来自分类Dev

当Java8使用参照透明性时

来自分类Dev

类型推断会干扰参照透明性

来自分类Dev

Skrollr背景透明性?

来自分类Dev

OpenGL透明性不透明

来自分类Dev

如何保证F#应用程序中的参照透明性?

来自分类Dev

PHP:将文本更改为具有透明性的PNG图像的功能

来自分类Dev

在Mac上具有功能透明性,但在Windows上没有?

来自分类Dev

OpenGL透明性无法正常工作

来自分类Dev

如何超越CSS的透明性方面

来自分类Dev

Gnome终端的背景透明性

来自分类Dev

为引导程序导航栏和照片增加半透明性,并增加字体大小

来自分类Dev

为什么Matlab的透明违反了透明性?

来自分类Dev

为什么材质设计中的活动图标和非活动图标具有不同的不透明性?

来自分类Dev

Firefox上具有不透明性和z-index的意外CSS 3过渡

来自分类Dev

我对可变类的“引用透明性”的理解正确吗?

来自分类Dev

酒吧半透明性在iOS 7.0.3中消失了

来自分类Dev

来自FillRectangle的不希望有的透明性

来自分类Dev

证书透明性快速入门:如何监视域列表?

来自分类Dev

如何为KDE的终端配置背景透明性?

来自分类Dev

GraphicsMagic无法识别PDF的背景透明性

来自分类Dev

如何改变图像的不透明性

来自分类Dev

Matplotlib pgf后端是否支持透明性?

来自分类Dev

使用图像透明性使黑色显示为“东西”

来自分类Dev

如何为KDE的终端配置背景透明性?

来自分类Dev

WPF PngBitmapEncoder:如何禁用背景透明性?

来自分类Dev

证书透明性快速入门:如何监视域列表?

Related 相关文章

热门标签

归档