如何在JavaScript中使用object通过键放置和获取值?
如何在JavaScript中使用字典功能 看这个,指定的方法正在工作,但我将函数实例设置为如下键:如何在JavaScript中使用object通过键放置和获取值?,javascript,Javascript,如何在JavaScript中使用字典功能 看这个,指定的方法正在工作,但我将函数实例设置为如下键: Scale = function () { this.Collections = {}; this.IndexTracker = {}; this.UpdateIndex = function () { var index = 0; for ( var i = 0; i < this.Collections.length; i+
Scale = function ()
{
this.Collections = {};
this.IndexTracker = {};
this.UpdateIndex = function ()
{
var index = 0;
for ( var i = 0; i < this.Collections.length; i++ )
{
this.SetIndex( this.Collections[i], index++ );
}
}
this.SetIndex = function ( obj, value )
{
this.IndexTracker[obj] = value;
}
this.GetIndex = function ( obj, value )
{
return this.IndexTracker[obj];
}
}
Scale=函数()
{
this.Collections={};
this.IndexTracker={};
this.UpdateIndex=函数()
{
var指数=0;
for(var i=0;i
this.Collections
将保存某个函数实例
这里的问题是函数实例被this.Collections
中的下一个函数实例覆盖。集合的长度始终为1
。如何解决这个问题
这是一个例子:
var Scale = function () {
var _Collections = {},
_IndexTracker = {},
ret = function () {
function UpdateIndex() {
var index = 0,i,l;
for (i = 0,l=_Collections.length; i < l; i++) {
this.SetIndex(_Collections[i], index++);
}
}
function SetIndex(obj, value) {
_IndexTracker[obj] = value;
}
function GetIndex(obj, value) {
return _IndexTracker[obj];
}
return {
UpdateIndex : UpdateIndex,
SetIndex : SetIndex,
GetIndex : GetIndex
};
};
return ret;
}();
var Scale=函数(){
var_集合={},
_IndexTracker={},
ret=函数(){
函数UpdateIndex(){
var指数=0,i,l;
对于(i=0,l=_Collections.length;i
这是一个例子:
var Scale = function () {
var _Collections = {},
_IndexTracker = {},
ret = function () {
function UpdateIndex() {
var index = 0,i,l;
for (i = 0,l=_Collections.length; i < l; i++) {
this.SetIndex(_Collections[i], index++);
}
}
function SetIndex(obj, value) {
_IndexTracker[obj] = value;
}
function GetIndex(obj, value) {
return _IndexTracker[obj];
}
return {
UpdateIndex : UpdateIndex,
SetIndex : SetIndex,
GetIndex : GetIndex
};
};
return ret;
}();
var Scale=函数(){
var_集合={},
_IndexTracker={},
ret=函数(){
函数UpdateIndex(){
var指数=0,i,l;
对于(i=0,l=_Collections.length;i
这可能是一个范围问题-使用var
关键字,使变量(this.Collections
等)仅存在于函数(对象)的范围内,而不是保存在全局范围内。键将被视为字符串。如果将不同的数据类型指定为键,它将转换为字符串。默认的字符串表示形式是[object object]
,因此您必须考虑其他用作键的内容(例如,使用您自己的对象序列化)。它的可能重复可能是一个范围问题-使用var
关键字,以便变量(this.Collections
等)仅存在于函数(对象)的范围内,而不是保存到全局范围。键将被视为字符串。如果将不同的数据类型指定为键,它将转换为字符串。默认的字符串表示形式是[object object]
,因此您必须考虑使用其他内容作为键(例如,使用您自己的对象序列化)。可能重复