javascript扩展类之Clone、Arrary.find、Array.Update、Array.Add【(更新中······】

/// <summary>javascript扩展</summary>

Object.prototype.Clone
= function () {
/// <summary>深度克隆</summary>
var objClone;
if (this.constructor == Object) {
objClone
= new this.constructor();
}
else {
objClone
= new this.constructor(this.valueOf());
}
for (var key in this) {
if (objClone[key] != this[key]) {
if (typeof (this[key]) == 'object') {
objClone[key]
= this[key].Clone();
}
else {
objClone[key]
= this[key];
}
}
} objClone.toString
= this.toString;
objClone.valueOf
= this.valueOf;
return objClone;
}

//扩展Arrary对象函数
Array.prototype.find = function (func) {
/// <summary>查找</summary>
/// <param name="func" type="Function">返回布尔类型的函数</param>

var temp = []; for (var i = 0; i < this.length; i++) {
if (func(this[i])) {
temp[temp.length]
= this[i];
}
}
return temp;
}

Array.prototype.Update
= function (key, obj) {
/// <summary>修改Array中的对象</summary>
/// <param name="key" type="String">键</param>
/// <param name="obj" type="Object">Update内容</param>
/// <returns type="Array" />

for (var i = 0; i < this.length; i++) {
if (this[i][key] == obj[key]) {
for (var attr in obj) {
if (typeof (obj[attr]) != "function") {
this[i][attr] = obj[attr];
}
}
}
}
return this;
}

Array.prototype.Add
= function (obj) {
/// <summary>将指定的obj添加在在Array的末端</summary>
/// <param name="obj" type="Object">指定的对象</param>

this[this.length] = obj.Clone();
}

posted @ 2011-09-08 02:46  空灵  阅读(1728)  评论(0编辑  收藏  举报