用來枚舉屬性的對象工具函數
阿新 • • 發佈:2017-12-22
peer row div ret let blog light 工具 con
1.把p中可枚舉的屬性賦值到o,並返回o(若o和p中有同名屬性則覆蓋)
function extend(o,p){ for(prop in p){ o[prop]=p[prop] } return o }
2.把p中可枚舉的屬性賦值到o,並返回o(若o和p中有同名屬性,o不受影響)
function merge(o,p){ for(prop in p){ if(o.hasOwnProperty[prop]) continue o[prop]=p[prop] } return o }
3.如果o中屬性在p中沒有同名屬性,則從o中刪除這個屬性
function restrict(o,p){ for(prop in o){ if(!(prop in p)) delete o[prop] } return o }
4.如果o中屬性在p中存在同名屬性,則從o中刪除這個屬性
function subtract(o,p){ for(prop in p){ delete o[prop] } return o }
5.返回一個新對象,這個對象擁有同時在o和p中出現的屬性,如果o和p中有重名屬性,使用p中屬性值
function union(o,p){ return extend(extend({},o),p) }
6.返回一個新對象,這個對象擁有同時在o和p中出現的屬性,p中的屬性值被忽略
function intersection(o,p){ return restrict(extend({},o),p) }
7.返回一個數組,這個數組是o中可枚舉的自有屬性的名字
function keys(o){ if(type of o !== "object") throw TypeError() var result = [] for(var prop in o){ if(o.haOwnProperty(prop)) result.push(prop) } return result }
用來枚舉屬性的對象工具函數