码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript中实现extend()方法

时间:2016-07-24 13:28:02      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

var male = {
    sex: "male"
};
var xiaoming = {
    name: "xiaoming",
    school: "xinhua"
};
Object.defineProperty(Object.prototype, "extend", {
    writable: true,
    enumrable: false,
    configurable: true,
    value: function(o) {
        // 得到所有的自有属性,包括不可枚举属性;
        var names = Object.getOwnPropertyNames(o);
        // 遍历它们
        for(var i = 0, len = names.length; i < len; i++) {
            // 如果属性已存在,则跳过;
            if(names[i] in this) {
                continue;
            }
            // 获得o中的属性的描述符
            var desc = Object.getOwnPropertyDescriptor(o, names[i]);
            // 用它给this创建一个属性
            Object.defineProperty(this, names[i], desc);
        }
    }
});
xiaoming.extend(male);
console.log(xiaoming);

 

JavaScript中实现extend()方法

标签:

原文地址:http://www.cnblogs.com/huangguaxiaocai/p/5700410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!