Mic*_*yer 15 actionscript actionscript-3
"in"运算符和"hasOwnProperty"方法似乎是可以互换的,但我想知道是否正在检查继承的属性或其他东西,而另一个不是或类似的东西.我对使用字典的情况特别感兴趣,但我怀疑它与其他用途不同.
Mic*_*yer 14
相信这个宝贵的答案实际上让我有点麻烦.似乎有更多的事情发生,而不仅仅是与原型相关的差异.我发现的是
当该键是引用类型时,hasOwnProperty不能用于查看字典中是否存在键,但是in运算符可以.
这是一个展示的例子.
码:
var test:Function = function(key:*,label:String):void
{
var d:Dictionary = new Dictionary(true);
d[key] = true;
trace(label);
trace(" hasOwnProperty: " + (d.hasOwnProperty(key)?"true":"false <== !!PROBLEM!!"));
trace(" in: " + (key in d));
trace(" []: " + d[key]);
};
test({}, "indexed by object");
test("string", "key is string");
test(0, "key is number");
test(true, "key is boolean");
Run Code Online (Sandbox Code Playgroud)
结果:
indexed by object
hasOwnProperty: false <== !!PROBLEM!!
in: true
[]: true
key is string
hasOwnProperty: true
in: true
[]: true
key is number
hasOwnProperty: true
in: true
[]: true
key is boolean
hasOwnProperty: true
in: true
[]: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2482 次 |
| 最近记录: |