为了账号安全,请及时绑定邮箱和手机立即绑定

window.js代码段 ​ Window.prototype =$.extend(...)最后返回的是一个全新的对象{}还是从new widget.Widget()扩展的对象。

         Window.prototype= $.extend({},new widget.Widget(),{...}),返回的是全新对象{}里面包含key,value,还是一个new widget.Widget()对象实例的扩展对象?

            这两个还是有区别的。如果是全新对象{},那么它的原型对象prototype是一个{},也就是object,如果是从new widget.Widget()对象实例的扩展对象,那么原型对象就包含{on:xxx,fire:xxx}这两个key value的map。debug跟踪下去,extends后返回的是全新对象{},将属性都挂载到了这个对象上了。像老师说的,混合了三个对象的实例。后面两个往第一个对象上加属性。从chrome的console上也可以看出来,打断点到window.js 的  return {Window:Window};这个代码段,控制台输入 Window.prototype得到如下实例,

Object {handlers: Object, on: function, fire: function, alert: function, prompt: function…}

on 和fire是挂在这个Object上的也就是window的prototype上,如果不显示,说明是挂在了new Widget()这个对象上了。

正在回答

1 回答

prototype这个是扩展属性来着 就是原有的对象继续增加属性

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
阿当大话西游之WEB组件
  • 参与学习       26371    人
  • 解答问题       275    个

衡量攻城师能力是否成熟的重要指标,本课程会以弹窗组件为例

进入课程

window.js代码段 ​ Window.prototype =$.extend(...)最后返回的是一个全新的对象{}还是从new widget.Widget()扩展的对象。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信