--- title: WebAssembly.Global slug: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly/Global ---
{{JSRef}}
 
WebAssembly.Global 객체는 전역 변수 인스턴스를 나타내며 JavaScript 및 하나 이상의 {{jsxref("WebAssembly.Module")}} 인스턴스에서 가져 오거나 내보낼 수 있습니다. 이렇게하면 여러 모듈을 동적으로 연결할 수 있습니다.

Constructor Syntax

var myGlobal = new WebAssembly.Global(descriptor, value);

Parameters

descriptor
A GlobalDescriptor dictionary object, 두 개의 속성이 포함되어 있습니다.
value
변수에 포함 된 값입니다. 변수의 데이터 타입과 일치하는 한 모든 값을 사용할 수 있습니다.
변수에 포함 된 값입니다. 변수의 데이터 타입과 일치하는 모든 값을 사용할 수 있습니다. 값을 지정하지 않으면 DefaultValue 알고리즘에 지정된대로 입력 된 0 값이 사용됩니다.

Function properties of the Module constructor

None.

Global instances

모든 Global 인스턴스는 Global() 생성자의 prototype object에서 상속받습니다.이 인스턴스는 모든 Global 인스턴스에 영향을 미치도록 수정할 수 있습니다.

Instance properties

{{page('/ko/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype', 'Properties')}}

Instance methods

{{page('/ko/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Global/prototype', 'Methods')}}

Examples

다음 예제에서는 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도 참조하십시오.

Specifications

Specification Status Comment
{{SpecName('WebAssembly JS', '#globals', 'WebAssembly.Global()')}} {{Spec2('WebAssembly JS')}} Initial draft definition.

Browser compatibility

{{Compat("javascript.builtins.WebAssembly.Global")}}

See also