gpt4 book ai didi

actionscript-3 - 在 Actionscript 3 中, "in"运算符和 "hasOwnProperty"方法有什么区别?

转载 作者:行者123 更新时间:2023-12-03 20:29:08 25 4
gpt4 key购买 nike

“in”运算符和“hasOwnProperty”方法似乎可以互换,但我想知道一个是检查继承的属性或其他东西,而另一个不是或类似的东西。我对将它与字典一起使用的情况特别感兴趣,但我怀疑这与其他用途不同。

“hasOwnProperty”在官方文档 here 中有描述和“in”被描述here ,但如果有区别,我没觉得很清楚。

最佳答案

相信珍贵接受的答案实际上让我遇到了一些麻烦。似乎不仅仅是与原型(prototype)相关的差异。我发现的是

当键是引用类型时,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");

结果:
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

关于actionscript-3 - 在 Actionscript 3 中, "in"运算符和 "hasOwnProperty"方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6878882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com