我正在做一个JS脚本,它将呈现具有拾取能力的树视图。
但是有些奇怪的事情正在发生,我发现它是什么,但这不会让我开心,我想发现它为什么会发生。
首先,Fiddle
我有两个div,其中将呈现控件。 在本演示中,我有两个输入,其中显示了选择器数据。
我设置了属性picker1.mapping.id
和picker1.mapping.text
(line 24-29)
以匹配id1
和text1
。
var picker1 = $("#render1").treePicker({
mapping: {
id: 'Id1',
text: 'text1'
}
});
然后,我将相同的属性设置为picker2
(line 31-36)
。
我的"构造函数"位于
var treePicker = function (params) {
this.mapping.id = params.mapping.id; // Change to this.mapping.id = params.mapping.id
};
我正在扩展"类"这样做:
$.extend(treePicker.prototype, {
mapping: {
id: 'id',
text: 'text',
},
});
问题是,在执行此操作时,picker1.mapping.id
不会保留自己的值,而是会保留picker2
值。
但是......如果我改变了
this.mapping.id = params.mapping.id;
到
this.mapping = params.mapping;
它会起作用。 有什么想法吗?