在the qooxdoo tutorial,我們看到這樣的代碼:這些語句如何啓用qooxdoo日誌記錄?
if (qx.core.Environment.get("qx.debug"))
{
qx.log.appender.Native;
qx.log.appender.Console;
}
但在括號中的兩個語句似乎只是通過遍歷命名空間層次結構進行訪問某些屬性 - 他們arent調用一個函數。
這兩條語句如何實際打開日誌?
在the qooxdoo tutorial,我們看到這樣的代碼:這些語句如何啓用qooxdoo日誌記錄?
if (qx.core.Environment.get("qx.debug"))
{
qx.log.appender.Native;
qx.log.appender.Console;
}
但在括號中的兩個語句似乎只是通過遍歷命名空間層次結構進行訪問某些屬性 - 他們arent調用一個函數。
這兩條語句如何實際打開日誌?
這兩個語句根據需要爲依賴分析創建了兩個類,然後將它們自己註冊到它們的推遲塊[1]中。這樣,管理變體相關的依賴關係。
[1] https://github.com/qooxdoo/qooxdoo/blob/master/framework/source/class/qx/log/appender/Native.js#L75
爲了把馬丁的回答,換句話說,該代碼片段只是確保類(本機和控制檯)被添加到應用程序的構建,提供了調試上。在這種情況下,qooxdoo的自動依賴分析會檢測這兩個符號並將它們添加到構建中。
一旦包含在構建中,他們自己註冊並因此使得日誌記錄成爲可能。