首页 > 解决方案 > “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数组和空白数组之间的操作,我不明白为什么需要这样的代码。

标签: javascriptmemoization

解决方案


如果 this.data 没有定义,这可以确保它有一个值。当this.datais undefinedor表达式变为(or ) 时null,其计算结果为this.data || {}undefined || {}null || {}{}


推荐阅读