こんな書き方できんだ

こんな書き方できんだ

by FiNGAHOLiC

HTML

<script src="https://getfirebug.com/firebug-lite-debug.js"></script>

JavaScript

// 1
(function(){
    console.log(arguments[0]);
    console.log(hoge);
}(hoge = 20));

// 2
(function(){
    window.addEventListener('load', arguments[0](), false);
}(function(){
    console.log('call');
}));

// 3
(function(){
    var User = function(name){
        this.name = name;
    };
    User.records = [];
    User.bind = function(ev, callback){
        var calls = this._callbacks || (this._callbacks = {});
        (this._callbacks[ev] || (this._callbacks[ev] = [])).push(callback);
    };
    User.trigger = function(ev){
        var list, calls, i, l;
        if(!(calls = this._callbacks)) return this;
        if(!(list = this._callbacks[ev])) return this;
        jQuery.each(list, function(){ this() });
    };
    User.create = function(){
        this.records.push(new this(name));
        this.trigger('change');
    };
    jQuery(function($){
        User.bind('change', function(){
            console.log('changed');
        });
        User.trigger('change');
    });
}());

// 4
({
    val1: 10,
    val2: 200,
    add: function(a, b){
        return a + b;
    },
    init: function(){
        console.log(this.add(this.val1, this.val2));
    }
}.init());