Я вторые мнения, что необходимо выбрать итеративный метод согласно потребности. Я предложил бы Вас на самом деле не к когда-либо цикл через собственный компонент Array
с for in
структура. Это - путь медленнее и , как Chase Seibert, на которого указывают в данный момент назад, не совместимый с платформой Прототипа.
существует превосходное сравнительный тест на различных стилях цикличного выполнения, что абсолютно необходимо смотреть на то, если Вы работаете с JavaScript. Не делайте ранней оптимизации, но необходимо сохранить тот материал где-нибудь позади головы.
я использовал бы for in
для получения всех свойств объекта, который особенно полезен при отладке сценариев. Например, мне нравится иметь эту строку, удобную, когда я исследую незнакомый объект:
l = ''; for (m in obj) { l += m + ' => ' + obj[m] + '\n' } console.log(l);
Это выводит содержание целого объекта (вместе с телами метода) к моему журналу Firebug. Очень удобный.
На самом деле это просто (через RegisterReadOnly ):
public class OwnerClass : DependencyObject // or DependencyObject inheritor
{
private static readonly DependencyPropertyKey ReadOnlyPropPropertyKey
= DependencyProperty.RegisterReadOnly("ReadOnlyProp", typeof(int), typeof(OwnerClass),
new FrameworkPropertyMetadata(default(int),
FrameworkPropertyMetadataOptions.None));
public static readonly DependencyProperty ReadOnlyPropProperty
= ReadOnlyPropPropertyKey.DependencyProperty;
public int ReadOnlyProp
{
get { return (int)GetValue(ReadOnlyPropProperty); }
protected set { SetValue(ReadOnlyPropPropertyKey, value); }
}
//your other code here ...
}
Вы используете ключ только тогда, когда вы устанавливаете значение в частном / защищенном / внутреннем коде. Благодаря защищенному установщику ReadOnlyProp
это прозрачно для вас.