前两天在看司徒正美的《javascript框架设计》,看到了一个模拟Object.keys()方法的函数,刚看的时候一头雾水,虽然只是短短的三行,但就是想死都想不通整个流程下来是如何执行的。无奈去讨论了一番,最终恍然大悟,怎能如此之妙!!!
function keys(obj){
var a = [];
for(a[a.length] in obj);
return a;
}
for in语句在javascript可用于遍历对象中的属性与方法;
var Aaa = {
'name': 'hello',
'age' : 23,
'sex' : 'male'
}
for(o in Aaa){
console.log(o) // 'name','age','sex'
}
在上面的keys()方法中,就用到了for in语句,其for(a[a.length] in obj)
中的a[a.length]
就相当于for(o in Aaa)
中的o
;就这样,遍历到的属性就巧妙的push到了a里面。
Beauty!