[英]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.