請注意,這只是我個人的筆記,因為還沒有完全研究,所以如果內容有錯誤,請各位指正,謝謝
(比如說 jQuery 有用到 prototype 來定義物件,我這裡就還沒看懂是怎麼處理的)
--

<script>
// 以 jQuery.trim 為例來建立類似 jQuery 的物件定義方式
// 只是類似而以,因為 jQuery 還有使用 prototype 的方式來定義
// 目前還沒有研究

// 以 my_jQuery 及 $$ 來命名
(function(window) 
{
    // private 的屬性及方法
    var Version="0.0001";

    // public
    var my_jQuery =
    {
        // 去除字串前後空白
        trim : function(str) 
        {
            return str.replace(/^\s+/, '').replace(/\s+$/, '');
        },

        // 傳回目前版本
        version :function() 
        {
            return Version;
        }
    };

    // 直接在 window 定義物件(所以不用回傳值)
    window.my_jQuery = window.$$ = my_jQuery;
})(window);
// 這裡使用立即函式來定義 my_jQuery,請注意執行時將 window 當參數傳入
// 所以能直接在 window 下定義 my_jQuery,所以才不需要回傳值
// 也就是這樣,所以才能使用 .noConflict 的方式來放棄對 window.$ 變數的控制

//==================  測試  ==========================
// 看看目前 my_jQuery 的定義
console.log("my_jQuery", my_jQuery);

// 查看 my_jQuery 的版本
console.log("my_jQuery Version: " + $$.version());

// 測試 my_jQuery.trim 
var str = "  123  ";
console.log("原始字串 = '" + str + "'");

str = $$.trim(str);
console.log("trim 後字串 = '" + str + "'");
</script>

 
執行結果:

my_jQuery Object { trim=function(), version=function()}
my_jQuery Version: 0.0001
原始字串 = '  123  '
trim 後字串 = '123'

arrow
arrow
    全站熱搜

    wbkuo 發表在 痞客邦 留言(0) 人氣()