从构造函数中调用类方法

时间:2016-02-19 11:49:24

标签: javascript ecmascript-6

从构造函数中调用类方法时出现错误。是否可以从构造函数中调用方法?我尝试从派生类的构造函数中调用基类方法,但我仍然收到错误。

var scrolled = false;
jQuery(window).scroll(function() 
{
    var y_scroll_pos = window.pageYOffset;
    var scroll_pos_test = 700;             

    if(y_scroll_pos > scroll_pos_test && !scrolled) 
    {
        scrolled = true;
        var owl = jQuery("#specialist-consultants-list");
        owl.trigger('owl.play');

        console.log('Scroll point reached');
    }
});
  

➜js_programsnode class1.js   /media/vi/DATA/programs/web/js/js_programs/class1.js:7           在里面();           ^

     

ReferenceError:未定义init       在Derived.Base(/media/vi/DATA/programs/web/js/js_programs/class1.js:7:9)       在Derived(/media/vi/DATA/programs/web/js/js_programs/class1.js:18:14)       在对象。 (/media/vi/DATA/programs/web/js/js_programs/class1.js:23:9)       在Module._compile(module.js:435:26)       at Object.Module._extensions..js(module.js:442:10)       在Module.load(module.js:356:32)       在Function.Module._load(module.js:311:12)       在Function.Module.runMain(module.js:467:10)       在启动时(node.js:136:18)       at node.js:963:3➜js_programs

2 个答案:

答案 0 :(得分:20)

您正在调用函数 init(),而不是init或当前对象的方法 Base。当前作用域或任何父作用域中不存在此类函数。你需要引用你的对象:

this.init();

答案 1 :(得分:4)

您缺少this关键字:

this.init();