javascript 面向对象属性继承的问题

u014452428 2015-09-09 09:08:18
代码如下:
Object.defineProperty(Object.prototype,"extend",{
writable : true,
enumerable : false,
configurable : true,
value : function(o)
{
var names = Object.getOwnPropertyNames(o);
for(var i = 0; i < names.length; i++)
{
if(names[i] in this) continue;
var desc = Object.getOwnPropertyDescriptor(o , names[i]);
Object.defineProperty(this,names[i],desc);
}
}
});
var a = {x : 1 , t : 2};
var b = {y : 2};
b.extend = a;
alert(b.x); // false

问题:为什么 b没有继承到a的属性...求大神解答。。。。
...全文
66 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2015-09-09
  • 打赏
  • 举报
回复

 Object.defineProperty(Object.prototype,"extend",{
         enumerable : false,
         configurable : true,
         set : function(o)
         {
             var names = Object.getOwnPropertyNames(o);
             for(var i = 0; i < names.length; i++)
             {
                 if(names[i] in this) continue;
                 var desc = Object.getOwnPropertyDescriptor(o , names[i]);
                 Object.defineProperty(this,names[i],desc);
             }
         }
     });
     var a = {x : 1 , t : 2};
     var b = {y : 2};
     b.extend = a;
     alert(b.x);  // false

87,843

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧