WebAssembly.Global 객체는 전역 변수 인스턴스를 나타내며 JavaScript 및 하나 이상의 WebAssembly.Module 인스턴스에서 가져 오거나 내보낼 수 있습니다. 이렇게하면 여러 모듈을 동적으로 연결할 수 있습니다.

Constructor Syntax

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

Parameters

descriptor
A GlobalDescriptor dictionary object, 두 개의 속성이 포함되어 있습니다.
  • value: USVString는 전역의 데이터 유형을 나타냅니다. i32, i64, f32 및 f64 중 하나입니다.
  • mutable: 전역 변수를 변경할 수 있는지 여부를 결정하는 부울 값입니다. 기본적으로 false입니다.
value
변수에 포함 된 값입니다. 변수의 데이터 타입과 일치하는 한 모든 값을 사용할 수 있습니다.

Function properties of the Module constructor

None.

Module instances

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

Instance properties

Global.prototype.constructor
이 객체의 인스턴스를 생성 한 함수를 돌려줍니다. 기본적으로 이것은 WebAssembly.Global() 생성자입니다.
Global.prototype[@@toStringTag]
@@toStringTag 속성의 초기 값은 String 값인 "WebAssembly.Global"입니다.
Global.prototype.value
전역 변수에 포함 된 값입니다.

Instance methods

Global.prototype.valueOf()
전역 변수에 포함 된 값을 반환합니다.

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
WebAssembly JavaScript Interface
The definition of 'WebAssembly.Global()' in that specification.
Working Draft Initial draft definition.

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support 69Edge No support NoFirefox Full support 62IE No support NoOpera No support NoSafari No support NoWebView Android Full support 69Chrome Android Full support 69Edge Mobile No support NoFirefox Android Full support 62Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No
valueChrome Full support 69Edge No support NoFirefox Full support 62IE No support NoOpera No support NoSafari No support NoWebView Android Full support 69Chrome Android Full support 69Edge Mobile No support NoFirefox Android Full support 62Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No
valueOfChrome Full support 69Edge No support NoFirefox Full support 62IE No support NoOpera No support NoSafari No support NoWebView Android Full support 69Chrome Android Full support 69Edge Mobile No support NoFirefox Android Full support 62Opera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No

Legend

Full support  
Full support
No support  
No support

See also

문서 태그 및 공헌자

이 페이지의 공헌자: limkukhyun
최종 변경자: limkukhyun,