Вышеупомянутые ответы немного раздражают, потому что они не объясняют, что вы делаете внутри цикла for, после того, как убедитесь, что это объект: ВЫ НЕ ДОСТУПНЫ НЕПОСРЕДСТВЕННО! Вы на самом деле только доставили КЛЮЧ, который необходимо применить к OBJ:
var obj = {
a: "foo",
b: "bar",
c: "foobar"
};
// We need to iterate the string keys (not the objects)
for(var someKey in obj)
{
// We check if this key exists in the obj
if (obj.hasOwnProperty(someKey))
{
// someKey is only the KEY (string)! Use it to get the obj:
var myActualPropFromObj = obj[someKey]; // Since dynamic, use [] since the key isn't literally named "someKey"
// NOW you can treat it like an obj
var shouldBeBar = myActualPropFromObj.b;
}
}
Это все безопасно для ECMA5. Даже работает в хромых версиях JS, таких как Rhino;)
Я решил этот запрос, это было просто. Просто отключите ту функцию модели, которую вы хотите переопределить, а затем добавьте функцию, она будет работать. Например, если вы хотите добавить пользовательский / обновить API на модель, вам нужно сделать.
_Model.disableRemoteMethodByName('update', false);
А затем добавьте новый удаленный метод с / update url, он будет работать. Потому что, если вы не отключите удаленную функцию модели и не создадите / обновите, она все равно будет вызывать встроенный метод / метод обновления модели, а не ваш метод custom / update.