你什么时候在阵列上使用hasOwnProperty?

时间:2017-01-21 09:33:28

标签: actionscript-3 flash

我刚刚看到一个代码如下的示例:

var schemaSet:Array = currentScope();
if (schemaSet.hasOwnProperty("current"))
    schema = schemaSet["current"];

我以前从未见过这个。我检查了as3文档,但没有找到任何相关信息。注意:此代码来自Adobe员工编写的SchemaManager.currentSchema()。

您何时何地使用此产品?这是否优于或等同于:

if (schemaSet.indexOf("current")!=-1)

1 个答案:

答案 0 :(得分:3)

有两种类型的数据:

  • 普通数组,只包含值,键是数字,从0开始。

  • 还有一些对象,其中每个元素都有一个字符串(也可以是一个数字)键。

如果要检查数组是否包含值,则使用.indexOf()方法。

var myArray = ["a", "b", "c"];

if (myArray.indexOf("a") > -1) return true;

如果你想检查一个对象是否有一个带有某个键的元素,那么你将选择hasOwnProperty()方法。

var myObject = {a: "letter a", b: "letter b"}

if (myObject.hasOwnProperty("a")) return true;