簡體   English   中英

調用位於單獨的.js文件中的JavaScript對象類

[英]Calling a JavaScript object class that's in a separate .js file

我創建了一個字符串構建器JavaScript對象,我在項目中使用了許多不同的.js文件。

我可以在一個單獨的.js文件中創建這個類,並從實現它的所有其他腳本中調用它,就像一個C#類文件一樣嗎?

這是可能的,還是我繼續復制並粘貼到使用它的每個.js文件的底部?

是的,這應該不是問題。 只需在html頁面中以正確的順序包含.js文件即可。

如果您在主HTML頁面中將文件與其他js一起包含,則可以根據需要使用“類”:

<script src="js1.js" type="text/javascript"></script>
<script src="js2.js" type="text/javascript"></script>

在上面的示例中,您現在可以使用js2.js中的代碼從js1.js實例化對象的新實例。 要使用純javascript執行此操作,您必須將腳本標記添加到DOM,或使用AJAX獲取腳本文件和eval()它。

// Create a <script> element
var scriptEl = document.createElement("script");
scriptEl.src = "js2.js";
scriptEl.type = "text/javascript";

// Append it to the <head>
document.getElementsByTagName("head")[0].appendChild(scriptEl);

要完全正確,重要的不是包含的順序,而是執行代碼的順序。 在大多數情況下,Andy和Segfault的說明都很好,但有時候在消費者不足之前包括類文件。 例如,如果你使用ExtJS,你碰巧在onReady處理程序中定義你的類,如下所示:

Ext.onReady(function() {
  myClass = ...
}.bind(this));

然后,當你的第二個src文件被包含在頁面中並執行時,它將不會被執行。

我知道,這個例子有點牽強:)但只要確保你的代碼以正確的順序執行,而不僅僅包含在正確的順序中。

我遇到了這個問題,我想添加一些東西(幾年前可能不存在)。

即使你認為你可以將每個腳本添加到你的“index.html”,這不是一個非常漂亮的做法(imho)。 特別是如果你認為你可能想要寫一個擴展(〜框架)。 你不想用他必須添加到他的代碼中的一堆腳本標簽來惹惱用戶。 你想要的是這樣的單行:

<script src="yourFramework" (...) />

但是,通過使用RequireJS,您可以實現這一目標。 您可以自由地分離代碼,而“您的用戶”仍然無需在他的“腳本部分”中添加小說。

暫無
暫無

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

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