我刚刚看到一个代码如下的示例:
var schemaSet:Array = currentScope();
if (schemaSet.hasOwnProperty("current"))
schema = schemaSet["current"];
我以前从未见过这个。我检查了as3文档,但没有找到任何相关信息。注意:此代码来自Adobe员工编写的SchemaManager.currentSchema()。
您何时何地使用此产品?这是否优于或等同于:
if (schemaSet.indexOf("current")!=-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;