js-sys
js-sys
crate 提供對 ECMAScript 標準保證存在於每個 JavaScript 環境中的所有全域 API 的原始綁定,其來源位於 wasm-bindgen/crates/js-sys
。 使用 js-sys
crate,我們可以使用 Object
、Array
、Function
、Map
、Set
等等,而無需手動編寫 #[wasm_bindgen]
導入。
此 crate 已發布版本的說明文件可在 docs.rs 上取得,您也可以查看 master 分支的說明文件以了解該 crate。
例如,我們可以調用 JavaScript Function
回呼,並使用 Date.now()
計時它們的執行時間,而我們不需要自己編寫任何 JS 導入
# #![allow(unused_variables)] #fn main() { use wasm_bindgen::prelude::*; #[wasm_bindgen] pub fn timed(callback: &js_sys::Function) -> f64 { let then = js_sys::Date::now(); callback.apply(JsValue::null(), &js_sys::Array::new()).unwrap(); let now = js_sys::Date::now(); now - then } #}
js-sys
crate 不包含任何 Web API 的綁定,例如 document.querySelectorAll
。這些將屬於 web-sys
crate 的一部分。