このコードは、オブジェクト プロパティを動的に設定できません。 console.log(key, val)
ループが を正しく反復することを示しますoptions
( のキーによってマージdefaults
およびフィルタリングされますdefaults
):
function Foo(options) {
var defaults = { foo: "bar" },
options = _.defaults(options || {}, defaults);
_.each(_.pick(options, _.keys(defaults)), function(val, key) {
this[key] = val; // Not working
});
this.baz = 'bar'; // Works
};
var foo = new Foo();
foo.hasOwnProperty('foo'); // false
foo.hasOwnProperty('baz'); // true
Q1 : なぜ機能しないのですか? this[key]
間違っていますか?
Q2 : キーセンシティブな問題、つまり pass に (通常) どのように対処すればよい{"FOO": "bar"}
ですか?
機能 (重要な場合): ._defaults
、_.pick
および_.keys
.