--- title: WebAssembly.Global slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global ---
WebAssembly.Global
객체는 전역 변수 인스턴스를 나타내며 JavaScript 및 하나 이상의 {{jsxref("WebAssembly.Module")}} 인스턴스에서 가져 오거나 내보낼 수 있습니다. 이렇게하면 여러 모듈을 동적으로 연결할 수 있습니다.var myGlobal = new WebAssembly.Global(descriptor, value);
GlobalDescriptor
dictionary object, 두 개의 속성이 포함되어 있습니다.
value
: {{domxref("USVString")}}는 전역의 데이터 유형을 나타냅니다. i32, i64, f32 및 f64 중 하나입니다.mutable
: 전역 변수를 변경할 수 있는지 여부를 결정하는 부울 값입니다. 기본적으로 false
입니다.DefaultValue
알고리즘에 지정된대로 입력 된 0 값이 사용됩니다.Module
constructorNone.
모든 Global
인스턴스는 Global()
생성자의 prototype object에서 상속받습니다.이 인스턴스는 모든 Global
인스턴스에 영향을 미치도록 수정할 수 있습니다.
{{page('/ko/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype', 'Properties')}}
{{page('/ko/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype', 'Methods')}}
다음 예제에서는 WebAssembly.Global()
생성자를 사용하여 만드는 새 전역 인스턴스를 보여줍니다. 값이 0 인 변경 가능한 i32
유형으로 정의됩니다.
The value of the global is then changed, first to 42
using the Global.value
property, and then to 43 using the incGlobal()
function exported out of the global.wasm
module (this adds 1 to whatever value is given to it and then returns the new value).
그런 다음 global.value
속성을 사용하여 42
까지 전역 값을 변경 한 다음 global.wasm
모듈에서 내 보낸 incGlobal()
함수를 사용하여 43으로 변경합니다.(이것은 값이 주어진 값에 1을 더한 다음 새 값을 반환합니다.)
const output = document.getElementById('output'); function assertEq(msg, got, expected) { output.innerHTML += `Testing ${msg}: `; if (got !== expected) output.innerHTML += `FAIL!<br>Got: ${got}<br>Expected: ${expected}<br>`; else output.innerHTML += `SUCCESS! Got: ${got}<br>`; } assertEq("WebAssembly.Global exists", typeof WebAssembly.Global, "function"); const global = new WebAssembly.Global({value:'i32', mutable:true}, 0); WebAssembly.instantiateStreaming(fetch('global.wasm'), { js: { global } }) .then(({instance}) => { assertEq("getting initial value from wasm", instance.exports.getGlobal(), 0); global.value = 42; assertEq("getting JS-updated value from wasm", instance.exports.getGlobal(), 42); instance.exports.incGlobal(); assertEq("getting wasm-updated value from JS", global.value, 43); });
Note: GitHub에서 실행중인 예제(running live on GitHub)를 볼 수 있습니다. source code도 참조하십시오.
Specification | Status | Comment |
---|---|---|
{{SpecName('WebAssembly JS', '#globals', 'WebAssembly.Global()')}} | {{Spec2('WebAssembly JS')}} | Initial draft definition. |
{{Compat("javascript.builtins.WebAssembly.Global")}}