【发布时间】:2011-12-07 06:18:55
【问题描述】:
在我看来,不可变类型在 Javascript 中是不可能的,或者有人知道创建它们的任何技巧吗?这是一个好习惯还是坏习惯?
比如,
var Point2D = function Point2D(x, y) {
var _x = x;
var _y = y;
function constructor() {
var self = {};
// Pseudo-Immutable concept
self.x = function() {
return _x;
}();
self.y = function() {
return _y;
}();
return self;
}
return constructor();
}
这当然不是真正不可变的,但如果它是 1) 有据可查的属性 'x' 和 'y' 是 getter 函数或 2) 在验证不变性时引发某种警报,那么它可以充当事实上的不可变对象。
想法?
【问题讨论】:
标签: javascript oop types immutability