我正在尝试将一些变量设置为一个对象。但我希望它像下面的代码一样设置 有没有办法设置这样的变量?
myObject = {};
myObject.save = function (var) {
console.log(var);
}
myObject.users.save(); // must output 'users';
myObject.fruits.save(); // output fruit;
save方法只是一个示例方法。这意味着我需要在变量字符串上链接一个方法。
我试图实现类似的目标。 任何想法如何实现? 感谢
答案 0 :(得分:1)
您可以为List
和users
列表创建fruits
课程,并提供常规列表方法,例如add
,remove
,{{1}使其实际上像列表类一样,并将save方法定义为原型方法:
size
然后你可以在你的对象中使用它,如:
var List = (function(){
function List(listType){
this.listType = listType;
this._list = [];
}
List.prototype.add = function(item){
this._list.push(item);
};
List.prototype.size = function(item){
return this._list.length;
};
List.prototype.save = function(item){
console.log(this.listType);
};
return List;
})();
现在你可以实际调用这两行代码:
var myObject = {};
myObject.users = new List("users");
myObject.fruits = new List("fruits");
您还可以为myObject.users.save(); // output 'users';
myObject.fruits.save(); // output 'fruits';
定义一个保存方法,并实际调用列表保存方法:
myObject
并称之为:
myObject.save = function(listType){
if(myObject[listType] instanceof List){
myObject[listType].save();
}
else{
console.log("there is no such a list named : " + listType);
}
};
答案 1 :(得分:0)
你可以这样做
var obj = {
users: {
save: function () {
console.log('Users');
}
},
fruits: {
save: function () {
console.log('Fruits');
}
},
}
(or)
var obj = {};
obj.users = {};
obj.users.save = function () {
console.log('Users');
};
obj.fruits = {};
obj.fruits.save = function () {
console.log('Fruits');
};