1
我正在爲非程序員創建一個API來編寫虛擬多人戰鬥機競技場的第三方代碼。用於使用全局將是很好的語法:在上面的例子讓第三方JavaScript訪問全局變量
function Step() {
if (sensor.wall) {
movement.brake();
movement.turnLeft();
}
if (sensor.enemy) {
movement.shoot()
}
if (movement.speed < 1) {
movement.accelerate(.1);
}
}
全局將sensor
和movement
。腳本作者不關心他們來自哪裏,只是他們可以訪問。 (不,這不是最後的語法,只是在這裏進行原型設計。)
腳本將在客戶端(瀏覽器)和服務器(通過Node或Spidermonkey)上運行。
那麼,該怎麼做?這似乎是我的選擇是:(?不過這是很糟糕,右)詞法然後eval()
- 將所有的全局腳本
- 將所有全局在全球範圍內,然後正常運行腳本(但什麼DOM全局變量,如
window
?)
我大概可以使用Google Caja來確保全局範圍。我也希望這是高性能的,因爲很多Step()
函數將在同一臺服務器上每秒運行一次。
在你的例子中,什麼應該是「全局」,什麼不是。目前還不清楚此代碼運行在什麼環境 - 服務器?客戶?都? – Pointy
已更新。感謝指針。 –