javascript回调参数未定义

时间:2012-01-26 17:14:23

标签: javascript callback

我是新手使用回调函数并努力尝试通过jquery挂钩,当某些ui元素被更改时将被调用。这是我正在做的一个非常简单的例子。如果我调用e.SetBorderWidth,它会正确地将10传递给函数。但是,如果我尝试使用回调,则SetBorderWidth将变为未定义。知道为什么以及我需要改变什么?感谢。

javascript代码----

element = {
    border: {
        width:0
    },

    SetBorderWidth : function(newWidth){
        this.border.width = newWidth;
    }
};

elementChild = function(){
    padding: 0
};

elementChild.prototype = element;


var e = new elementChild();

var callback = e.SetBorderWidth;

function SetWidth(){
    e.SetBorderWidth(10);
    alert(e.border.width);

    callback.call(10);
    alert(e.border.width);
}

和html代码

<input type="button" onclick="SetWidth();" value="Click" />

1 个答案:

答案 0 :(得分:2)

只做callback(10);添加.call传递10作为上下文(this变量)而不是参数。