一个纯函数可以调用外部方法吗?
例如:
class Dog {
function jump(name) {
return "a dog named " + name + " jumped!"
}
function jumpTwice(names) {
var result = [];
for (var i = 0; i < 2; i++) {
result.push(jump(names[i]));
}
return result.join("\n");
}
}
跳两次(jumpTwice()
)可以被视为一个纯函数(pure function
)吗?
jumpTwice
取决于jump
的行为。如果jump
的定义发生变化,那么jumpTwice
的行为也会发生变化。这难道不违反了纯函数的“相同输入,相同输出”的规则吗? - Marc de la Barrera i Bardalet