0

为什么它不起作用,它说它不是一个函数,为什么我不能从 myalert2 调用 myalert()?怎么做??

var sheepclass = function(handler) {
    this.handler = $.extend({
        'sizes': 'thin',
        'eat': 'grass',
        'color': 'white',
        myalert: function() {
            alert('Hello World');
        },
        myalert2: function() {
            handler.myalert();
            this.handler.myalert(); //this not work either
        }
    }, handler);
}
var blacksheep = new sheepclass({
    'color': 'black'
});
blacksheep.handler.myalert2();
4

2 回答 2

0

打电话this.myalert()就行

于 2012-12-04T09:22:20.360 回答
0

是因为范围...

http://jsfiddle.net/78QXc/

var sheepclass = function(handler) {
    this.handler = $.extend({
        'sizes': 'thin',
        'eat': 'grass',
        'color': 'white',
        myalert: function() {
            alert('Hello World');
        },
        myalert2: function() {
            this.myalert();
        }
    }, handler);
}
var blacksheep = new sheepclass({
    'color': 'black'
});
blacksheep.handler.myalert2();​
于 2012-12-04T09:23:38.987 回答