请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

直接定义自身属性和扩展原型的属性具体使用区别?

如下代码,不在原型中扩展,而是把html、on 直接定义在Elem函数中,功能也能实现。这样对比在原型中扩展有何缺陷?或者不足?

function Elem(id) {
    this.elem = document.getElementById(id);

    this.html = function (val) {
        var elem = this.elem;
        if (val) {
        elem.innerHTML = val;
            return this;  //用于链式操作,让程序更健壮
        } else {
            return elem.innerHTML;
        }
     }

    this.on = function (type, fn) {
        var elem = this.elem;
        elem.addEventListener(type, fn);
        return this; //用于链式操作
    }
}


正在回答

1回答

如果没有继承关系,你是看不出来的。j假如,Object.prototype.toString 这个方法也像你的定义方式一样,咱们还能方便的使用 toString 吗

1 回复 有任何疑惑可以回复我~
  • 提问者 宇xixi #1
    理解理解了,表示感谢哈
    回复 有任何疑惑可以回复我~ 2017-08-11 09:04:05
  • 老师,这里有体现继承关系吗?Object.prptorype.toString是因为有两层继承关系才体现原型链的作用,一层继承关系直接放在属性也能用的,我这样理解对吗
    回复 有任何疑惑可以回复我~ 2017-08-12 09:50:20
  • 这样也可以。不过你别忽略了程序这个东西是随时都可能变化的,因此要保证扩展性,一层继承关系很可能明天就变成两层,因此尽量放在原型中
    回复 有任何疑惑可以回复我~ 2017-08-12 10:55:10
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号