static_method_of = Blah

static_method_of 属性允许指定导入的函数是给定导入的 JavaScript 类的静态方法。 例如,要绑定到 JavaScript 的 Date.now() 静态方法,可以使用此属性

#![allow(unused)]
fn main() {
#[wasm_bindgen]
extern "C" {
    type Date;

    #[wasm_bindgen(static_method_of = Date)]
    pub fn now() -> f64;
}
}

now 函数也会成为 Rust 绑定中导入类型的静态方法

#![allow(unused)]
fn main() {
let instant = Date::now();
}

这类似于 js_namespace 属性,但是由于该方法也成为导入类型的静态方法,因此在 Rust 中的用法有所不同。此外,此属性还指定调用该方法时的 this 参数应为 JS 类,例如,始终以 Date.now() 的形式调用,而不是 const x = Date.now; x()