当前位置:  开发笔记 > 编程语言 > 正文

如何使用Javascript中的经典原型方法

如何解决《如何使用Javascript中的经典原型方法》经验,为你挑选了0个好方法。

我正在学习Javascript中面向对象编程的旅程.我从这里获得了这个视频版本http://www.objectplayground.com/我理解了相当多的原型方法而不是经典方法.

在观察内容时,我暂停了显示的经典方法与子类一起使用的示例,如下所示:

//superclass
function Answer(value){
     this._val = value;
}

//define prototype property 'get' for the superclass
Answer.prototype.get = function fn1(){
    return this._val;
}

//subclass
function FirmAnswer(value){
    Answer.call(this,value);
}

FirmAnswer.prototype = Object.create(Answer.prototype);
FirmAnswer.prototype.constructor = FirmAnswer;

//define prototype property 'get' for subclass
FirmAnswer.prototype.get = function fn2(){
   return Answer.prototype.get.call(this);
}


var luckAnswer = new FirmAnswer(7);
luckAnswer.get(); //7

题:

从我的理解call函数,它将设置this当前上下文是例如从该行Answer.call(this,value)FirmAnswer功能,所以_valAnswer会为设置FirmAnswer而不是为Answer(请纠正我,如果我错了).

因此,如果上述分析是正确的,那么它会导致我的混淆,为什么返回的get属性而不仅仅是因为已经设置为调用时?FirmAnswer.prototypeAnswer.prototype.get.call(this)Answer.prototype.get()thisFirmAnswernew FirmAsnwer(7)

请给我一些启示,因为我现在很困惑.我很确定我很了解原型方法,但经典方法让我很困惑.

先感谢您!

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有