首页   注册   登录
 WMutong 最近的时间轴更新

WMutong

这个人很懒,什么也没留下
  •   程序员
    V2EX 第 295657 号会员,加入于 2018-03-01 18:14:46 +08:00
    这个人很懒,什么也没留下
    WMutong 最近回复了
    2018-04-02 09:44:34 +08:00
    回复了 waiaan 创建的主题 JavaScript 问一个关于继承的问题
    完整的继承:

    var SuperClass=function(){
    this.name='superClass';
    };
    SuperClass.prototype.sayName=function(){
    console.log('name: ' + this.name);
    };

    var SubClass=function(){
    SuperClass.call(this,name);
    };

    function extend(subClass,superClass){

    var F = function(){};

    F.prototype = superClass.prototype;

    subClass.prototype = new F(); //位置一

    subClass.prototype.constructor = subClass;

    // 下面这段代码,为什么要赋值为 superClass.prototype ?可不可以直接赋值为 superClass ?二者有什么区别?

    subClass.superClass = superClass.prototype; //位置二

    //

    if(superClass.prototype.constructor == Object.prototype.constructor){

    superClass.prototype.constructor = superClass;

    }
    }

    extend(SubClass,SuperClass);

    var sub1=new SubClass();
    console.log(sub1); //位置五
    sub1.sayName();

    例子中,位置五( sub1 实例)输出:

    SubClass{
    name:"superClass",
    __proto__:{
    constructor:function(){
    superClass:Object, //SuperClass 的构造函数
    ...
    prototype:SuperClass //SuperClass 的构造函数
    }
    }
    }

    如果没有“ subClass.superClass = superClass.prototype;”,那么 位置五 输出:

    SubClass{
    name:"superClass",
    __proto__:{
    constructor:function(){
    ...
    prototype:SuperClass //SuperClass 的构造函数
    }
    }
    }

    两者的区别在于:
    一个是在 SubClass 构造函数中添加了,等于 SuperClass 原型的 superClass 属性。
    一个没有添加。

    但不论 位置二 是否存在,SubClass 都已经在 位置一 继承了 SuperClass 的原型方法。
    所以,我认为 位置二 并不是必要的。


    同时《 JavaScript 高级程序设计 第三版》中对于 “寄生组合式继承” 使用的示例为:

    function inheritPrototype(subClass,superClass){

    var prototype=object(superClass.prototype);
    prototype.constructor=subClass;
    subClass.prototype=prototype;

    }
    @whileFalse 我还是决定上个 https,谢谢你的回答
    @whileFalse 我是通过移动网络访问的,而且过了一宿加一上午移动网页又恢复正常了。
    @opengps 可我是使用移动网络访问的
    2018-03-20 11:12:39 +08:00
    回复了 shihty5 创建的主题 程序员 求推荐程序员书籍靠谱书评
    JavaScript 高级程序设计(我是前端 -_-)
    2018-03-09 10:15:25 +08:00
    回复了 WMutong 创建的主题 程序员 一个关于 function(){}()的问题,大神们谁能帮我讲解下,谢谢
    @BearD01001 也感谢你来参与了我的问题,谢谢
    2018-03-09 10:13:55 +08:00
    回复了 WMutong 创建的主题 程序员 一个关于 function(){}()的问题,大神们谁能帮我讲解下,谢谢
    @hansnow 对的对的就是这个,谢谢
    2018-03-09 10:12:39 +08:00
    回复了 WMutong 创建的主题 程序员 一个关于 function(){}()的问题,大神们谁能帮我讲解下,谢谢
    @BearD01001 我刚开始也是这么认为的,但并不是。比如说:
    数组 [1 ,3 ,7 ,3 ,11 ,9 ,2 ,10 ]
    奇数相加 1+7+11+2= 21
    偶数相加 3+3+9+10=25

    奇偶最大值 25
    实际最大值 10+11+7+1=29
    2018-03-09 09:58:12 +08:00
    回复了 WMutong 创建的主题 程序员 一个关于 function(){}()的问题,大神们谁能帮我讲解下,谢谢
    @xml123 是的,思路是一样的。这个是我看到的别人的答案,用的 javascript 中 ES6 的语法。我对其中的 function(){}()用法感觉不是很理解。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   951 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 14ms · UTC 22:08 · PVG 06:08 · LAX 14:08 · JFK 17:08
    ♥ Do have faith in what you're doing.