作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
标题说明了一切,但假设我有一个返回 true 或 false 的 hasAccess() 函数
我在 ExtJS 4 工具栏按钮配置中使用它,如下所示:
{
id: 'btnEditMyStuff',
ref: 'edit_my_stuff',
xtype: 'button',
text: 'Edit',
hidden: !( MyUser.hasAccessTo('EditMystuff') )
}
即使在 Firebug 中测试时此表达式被正确评估为 false,我的按钮不会显示。
但是有了这个:
{
id: 'btnEditMyStuff',
ref: 'edit_my_stuff',
xtype: 'button',
text: 'Edit',
hidden: ( MyUser.hasAccessTo('EditMystuff') == false )
}
按钮正确显示。
问题是:有什么区别?
我在这里忽略了什么神秘的比较运算符/函数评估优先级?
我想 sleep 时不像昨天那么笨。提前致谢。
编辑:
hidden: !( MyUser.hasAccessTo('EditMystuff') ) // does not work
hidden: (!MyUser.hasAccessTo('EditMystuff') ) // works
但我仍然渴望完全理解。
最佳答案
嗯,你基本上是对的
!(true) is false
!(false) is true
和
true == false is false
false == false is true
所以如果输入只有 true 和 false 但如果输入是一个空数组那么你可以拥有
![] is false
但是
[]==false is true
关于javascript: !( booleanCondition() ) vs ( booleanCondition() == false ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16794918/
标题说明了一切,但假设我有一个返回 true 或 false 的 hasAccess() 函数 我在 ExtJS 4 工具栏按钮配置中使用它,如下所示: { id: 'btnEditMy
我是一名优秀的程序员,十分优秀!