【发布时间】:2019-10-11 03:50:17
【问题描述】:
我是一名学习javascript的学生,在学习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 操作,我不明白为什么需要这样的代码。
【问题讨论】:
-
下面发布的答案通常是正确的。我唯一要补充的是,它被用作一种简写形式来代替更冗长的
if声明:if (!this.data) { this.data = {}; }。