<script type="text/javascript">
// 1.传入对象,返回的是属性名
var obj = { 'a': 123, "b": 456 };
console.log(Object.keys(obj)) //["a","b"]
var obj1 = { 100: "a", 2: "b", 23: "c" };
console.log(Object.keys(obj1)) //["2", "23", "100"]
var obj2 = Object.create({}, {
GETfOO: {
value: function() {
return this.foo
}
}
});
obj2.foo = 3;
console.log(Object.keys(obj2))
//2.传入字符串,返回索引
var str = 'asfdw4tergdfv';
console.log(Object.keys(str)) //["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
//3.输入构造函数,返回的是空数组或则属性名
function Pasta(name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
this.toString = function() {
return (this.name + ", " + this.age + ", " + this.gender);
}
}
console.log(Object.keys(Pasta)) //[]
var newPasta = new Pasta("lilei", 20, "male");
console.log(Object.keys(newPasta)) //["name", "age", "gender", "toString"]
//4.传入的数组,返回的索引
var arr = [1, 24, 45, 67];
console.log(Object.keys(arr)) //["0", "1", "2", "3"]
</script>