for in 可以遍历对象中的 所有属性名。该枚举过程中会列出所有的属性--包括函数 和你可能不关心的原型中的属性 --所以有必要过滤掉 不想要的值,最常用的过滤器是 hasOwnProperty方法,以及用typeof排除函数;
属性名出现的顺序是不确定的,如果想要确保 属性 以特定的顺序出现 ,最后的办法是避免使用 for in 二十创建一个数组
var i ;
var properties = [
"fisr-name",
"niddle-name"
]
for(i = 0;i<properties.length; i+=1){
properties[i]=i ;
}
///
Object.prototype.Clone = function() {};
Object.prototype.Call = function() {};
Object.prototype.OtherMethod = function(){};
var objMap = {};
objMap['abc'] = '1.abc';
objMap['def'] = '2.def';
objMap['ghi'] = '3.ghi';
objMap['jkl'] = '4.jkl';
Object.prototype.getExpandoNames = function() {
var values = new Array();
var obj = new this.constructor();
for(var i in this) {
if(obj[i]!=this[i]) {
values.push(i);
}
}
return values;
}
GetExpandoValues(objMap);