Bla*_*man 2 javascript arrays initialization
我已经看到很多javascript对象都有一个'init'方法,你传入值来设置对象.
当在名称/值对数组中传递时,它们如何在内部处理其私有变量的初始化,如:
myObject.init({prop1:"blah",prop2:"asdf",...,propn:"n"});
具体来说,其中一些值可以是可选的,因此如果在init期间传入名称/值对,您将如何设置默认值然后覆盖它们.
var myObject = {
init: function(options) {
this.foo = options.foo || 'some default';
this.bar = options.requiredArg;
if (!this.bar) raiseSomeError();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
在 FF5、IE8、Chrome 12、Opera v11.5 上测试正常。默认值是什么并不重要,如果它们的密钥在调用列表中,它们将被覆盖,否则它们将被保留。
var myObject = {
prop1: 'default1',
prop2: 'default2',
prop3: 'default3',
prop4: 'default4',
prop5: 'default5',
prop6: 'default6',
init: function(options) {
for(key in options) {
if(this.hasOwnProperty(key)) {
this[key] = options[key]
}
}
}
}
myObject.init( {prop1: "blah", prop2: "asdf", prop5: "n"} )
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16626 次 |
最近记录: |