日期:2014-05-16  浏览次数:20363 次

js的这种写法是什么意思?
JScript code

(function(D, B, F) {
    if (D.sdoLogger) return;
    var E = {
        jsName: "sdo_beacon.js",
        defaultVer: 20111010,
        getVersion: function() {
            var _ = this.jsName,
                $ = new RegExp(_ + "(\\?(.*))?$"),
                D = B.getElementsByTagName("script");
            for (var E = 0; E < D.length; E++) {
                var C = D[E];
                if (C.src && C.src.match($)) {
                    var A = C.src.match($)[2];
                    if (A && (/^[a-zA-Z0-9]+$/).test(A)) return A
                }
            }
            return this.defaultVer
        },
        base64encode: function(_) {
            var D = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
                F, E, C, $, A, B;
            return F
        }
    }
    $.tracking();
    D.sdoLogger = $
})(window, document)



这叫匿名类?那是怎么调用的呢?如果我想多了解一下这方面的知识,有什么书推荐?网络应该怎么搜?

还有一个问题随便也问了吧,关于jquery的问题。
JScript code

$.ajax({
    type : "GET",
    cache : false,
    url : url,
    dataType : 'text',
    success : function(data) { //问题的关键点,这个data数据居然可以直接传过来,是怎么实现的?
        if(data == 1){
            
        }
    }
});





------解决方案--------------------
这个是一个自运行匿名函数,主要是模仿块级作用域的。里面的代码会自动运行。下面的括号是传参进去的。
jQuery的那个data是在jQuery构造里面传进来的,这个需要看jQuery的API才知道他传了什么过来。