有骨干的类构造函数
任务
可以将命名参数传递给新的 bb 支持的对象
示例
initialize : function(foo, bar, baz){
this.foo = foo;
...
}
new Foo(value0, value1, value2)
问题
是否可以在不修改库源代码的情况下?
task
to make it possible to pass named paramteres to new bb-backed objects
example
initialize : function(foo, bar, baz){
this.foo = foo;
...
}
new Foo(value0, value1, value2)
question
Is it possible without modifying the library source code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您检查源代码,您会发现模型像这样调用
initialize
:但是 Collection、Router 和 View 像这样调用它:
众所周知,
apply
执行以下操作:和
参数
是:因此,对于模型,您必须使用标准 文档化接口,但对于其余的,您可以执行类似这样的操作:
演示: http://jsfiddle.net/ambigously/5ZD6z/
请注意,这样做违反了记录集合,Router 和 View 接口,因此如果使用,请不要感到惊讶这未记录的行为会导致新的有趣的错误或升级后神秘的中断。我建议坚持使用已记录的接口,如果它真的让您很烦恼,请编写构造函数:
然后继续进行更高效的事情。
If you check the source you'll see that Model calls
initialize
like this:But Collection, Router, and View call it like this:
And as we all know,
apply
does this:and
arguments
is:So for models you're stuck with the standard documented interface but for the rest you can do things like this:
Demo: http://jsfiddle.net/ambiguous/5ZD6z/
Note that doing this violates the documented Collection, Router, and View interfaces so don't be surprised if using this undocumented behavior causes new and interesting bugs or breaks mysteriously after an upgrade. I'd recommend sticking to the documented interfaces and if it really bothers you so much, write constructor functions:
and move on to more productive things.
您可以将 JavaScript 对象作为参数传递到构造函数中,请查看 Model.extend 的文档< /a>:
You can pass JavaScript objects as parameters into the constructor, take a look at the docu for Model.extend: