就是这样:
-
评价
obj[letter]
(关于这一部分的更多信息,请参阅
this question's answers
):
-
评价
letter
获取其当前值(例如,
"a"
)
-
评价
obj
获取其当前值(对象)
-
获取名为
“a”
(例如)在物体上;如果该属性不存在,则其结果将是值
undefined
-
分支到
if
如果步骤1中的值为
真实的
A.
真实的
价值是指任何不存在的价值
法尔西
.虚假的价值观是
未定义
,
null
,
0
,
""
,
NaN
,当然,
false
.
基本上,这些代码所做的就是看看
obj
已经有了字母的属性,如果有,则增加其值;如果不是,则将其值设置为1。
不过,不要过度概括这种模式。它在这里起作用,因为房产的价值永远不会改变
0
或
""
或类似(存储的值从1开始,仅增加)。但在其他情况下,如果需要查看对象上是否存在属性,但其值可能是虚假值之一,请使用
obj.hasOwnProperty(letter)
(检查该属性是否存在于对象本身,而不是其原型上),
letter in obj
如果你想检查对象及其原型链,或者如果你想对
hasOwnProperty
被重新定义使用
Object.prototype.hasOwnProperty.call(obj, letter)
. :-)
如果你知道这张支票很有价值,那么你就知道这张支票没有价值。