0

新しいオブジェクト変数を作成し、オブジェクトを引数として渡します。

var obj = new test({
    first : $('#fname').val(),
    last : $('#lname').val(),
    fn : function() {
        alert(this.first + " " + this.last);
    }
});

これは、上記の変数を作成するときに呼び出される関数です。

var test = function(obj) {
    this.fn = function() {
        alert("No custom function was made.");
    }

    this.first = obj.first;
    this.last = obj.last;
    if(obj.fn)
        this.fn = obj.fn(); //I also tried it without the '()' after 'obj.fn'
};

最初と最後の変数は問題ありませんが、渡されたカスタム関数を設定する方法がわかりません。

4

2 に答える 2

2

'obj.fn'の後に'()'を削除しようとしたとのことですが、そうするとうまくいくようです。確認するためのリンクは次のとおりです:http://jsfiddle.net/TD93x/3/

于 2012-07-28T04:34:49.210 に答える
2

それは私のために働いた

var test = function(obj) {
    this.fn = function() {
        alert("No custom function was made.");
    }

    this.first = obj.first;
    this.last = obj.last;
    if(obj.fn)
        this.fn = obj.fn;
};
于 2012-07-28T04:21:13.633 に答える