big*_*olf 2 javascript backbone.js
我已经开始挖掘骨干了,当使用路由器功能创建和销毁视图时,我遇到了这个小片段,这对我来说没有多大意义,因为我一直认为这些操作符只适用于条件陈述,
this.view && this.view.remove();
Run Code Online (Sandbox Code Playgroud)
这是一个连接到路由器的方法,它看起来像一个魅力,但我总是厌倦了不适合我的伏都教代码.
这是完整的方法
loadView : function(view) {
this.view && this.view.remove();
this.view = view;
}
Run Code Online (Sandbox Code Playgroud)
很想更好地理解这一点,希望它不要太傻了.
干杯.
在JavaScript中:
this.view && this.view.remove();
Run Code Online (Sandbox Code Playgroud)
相当于
this.view ? this.view.remove() : this.view;
Run Code Online (Sandbox Code Playgroud)
只有在左手边是真正的时候才会执行右侧.如果忽略表达式的值并且左侧没有副作用(如本例所示),那么它也等同于:
if (this.view) {
this.view.remove();
}
Run Code Online (Sandbox Code Playgroud)
因此,在这种特定情况下,如果存在view,则将其删除.请注意,此表达式的值不一定是布尔值(与许多其他语言不同); 它是由...返回的remove.但是,这个值被忽略了,所以它实际上并不相关.
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |