簡體   English   中英

使用$的多個圖書館的javascript結果如何?

[英]What is the outcome in javascript with multiple librarys that use $

讓我們假裝這是在你的html頁面的<head>中。

OOPS之前有點遺漏......

<script type="text/javascript" src="/include/js/billys.js"></script>
<script type="text/javascript" src="/include/js/susies.js"></script>
<script type="text/javascript" src="/include/js/marys.js"></script>

3個腳本的順序可能會有所不同。 會有什么結果?

比利將$定義為

function $ () {
 return false;
}

蘇西將$定義為

function $ () {
 return document.getElementById('body');
}

瑪麗將$定義為

function $ () {
 alert('I wrote this');
}

無論什么是最后的$的最終定義

這就是為什么在(例如)jQuery中有noConflict()允許你使用不同的變量而不是$ for jQuery

為什么不試試呢?

function $ () {
 return false;
}
function $ () {
 return document.getElementById('body');
}
function $ () {
 alert('I wrote this');
}
$(); // alerts "I wrote this"

后面的定義會覆蓋現有的定義。 這就是為什么在定義函數之前檢查函數是否已存在的一般做法。 例如

if (typeof $ !== 'function') {
    function $(){ /* your code */}
}

或以某種明智的方式失敗。

最后一個具有相同名稱的函數獲勝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM