好吧,我知道这是一个愚蠢的问题,和愚蠢quesitons是最常见的最难找到答案,如每个人都认为他们只是知道。无论如何,我有这样的:如何在YUI对象包装中包装javascript对象文字?
var map = {
"key1" : "someValue1",
"key2" : "someValue2"
};
然后,我正是如此列举的条目:
Y.Object.each(map, function(value,key,object) {
// do something;
});
但我真正想要做的是一样的东西:
map = Y.Object.wrap(map);
map.each(function(value,key,object) {
});
值得一提的原始对象可能作为参数传入,所以我不会一直构造它们。换句话说,我真的想打包一个(并且如果它已经被包装,将不会双重打包)。答案可能很明显,甚至在文档中,我只是无法找到它。所以,我自己通过在googlesphere的摆布......
---------------------编辑----------- ---------
当我说总结,我想我的意思是(在YUI说吧)扩充。换句话说,我希望Y.Object方法可以直接在有问题的对象上使用。举例来说,我希望能够做这样的事情:
var map = {
"key1" : "someValue1",
"key2" : "someValue2"
};
map.each(function(value,key,object) {
//do something with each entry in my map
});
而不必总是这样做的:
var map = {
"key1" : "someValue1",
"key2" : "someValue2"
};
Y.Object.each(map, function(value,key,object) {
//do something with each entry in my map
});
有两个原因。首先,我很懒,不想继续打字Y.Object.each(myObject...
当我想要的是迭代我的对象的每个属性。其次,我想向前兼容,以便当功能each
和some
获得本地定义的(我认为他们已经在Firefox和Chrome),我可以利用本地实现无代码更改。我认为第二个原因是Crockford似乎强调的东西,因为他总是似乎说如果你想添加一个函数到一个Object的原型,那么这样做的方式会检查函数是否在做之前已经被定义所以。随时纠正我,如果我错了,上面的任何地方,和往常一样,随意提出一个解决方案:)
我不知道你所说的“包装”的意思。你有一个例子或链接,更具体地解释你在找什么? – mjhm