我不能在Javascript中调用任何对象的方法

时间:2010-11-19 20:02:03

标签: javascript oop

我试图定义这个类,然后实例化它并调用它的一些方法。

function Layer(){
    this.image = null;
    this.owned = false;
    this.sim = false;
    this.pos = 0.5;
    this.vel = 0;
    this.acc = 0;
    this.lastup = millis();
    this.newpos = 0;

    this.scrub = scrub;
    function scrub(npos){
        this.newpos = npos;
        this.vel = 0;
        this.acc = 0;
    }
}

dummy = new Layer();

dummy.scrub(0.8);
// chrome says Uncaught TypeError: Object #<an Object> has no method 'scrub'

我是否正确定义了方法?

2 个答案:

答案 0 :(得分:2)

您没有正确定义方法。而不是:

this.scrub = scrub;
function scrub(npos){ ... }

应该是:

this.scrub = function(npos){ ... }

或者你可以完全摆脱this.scrub = scrub;行。

答案 1 :(得分:1)

如果您希望它们可以“从外部”调用,则必须定义函数:

this.scrub = function(npos) { ... }