javascript - “this.data = this.data || {}”在记忆模式中是什么意思?
问题描述
我是一名正在学习的学生,在学习patternjavascript
时遇到了一个问题。memoization
这是代码:
Function.prototype.memoization = function(key) {
var arg = Array.prorotype.slice.call( arguments, 1 );
this.data = this.data || {} ; //THE code
return this.data[key] !== undefined ?
this.data[key] : this.data[key] = this.apply(this, arg);
};
对我来说,它仅显示为OR
数组和空白数组之间的操作,我不明白为什么需要这样的代码。
解决方案
如果 this.data 没有定义,这可以确保它有一个值。当this.data
is undefined
or表达式变为(or ) 时null
,其计算结果为this.data || {}
undefined || {}
null || {}
{}
推荐阅读
- android - 如何在方法android kotlin中忽略Mockito Matcher中的参数
- vb.net - 如果条件导致异常。如何纠正?
- php - “新的 PhpOffice\PhpSpreadsheet\Spreadsheet()”如何工作
- arrays - Swift4.2 如何将“struct”构造的二维数组保存到UserDefautls?
- python - 如何在熊猫的多列中执行内连接
- c# - 在这种情况下我是否需要取消注册事件以防止内存泄漏?
- grand-central-dispatch - NSTextView 不使用 Grand Central Dispatch 更新
- javascript - 通过选择列表将 Google 表格 A 列添加到外部网站
- php - 如何将密码保存在 laravel 的另一个表中并与 laravel 的默认身份验证一起使用?
- jpa - JPA @ForeginKey 映射完全没有约束?