Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

Indicates a global was replaced by a script using the Define API.

 

Notes

A define with state Define.REPLACED was originally native, but has since been replaced using Define().

Replaced defines are immutable.

If the define is a function, the native function will be available via a 'native' property on that function (see first You can always access the native implementation of replaced properties by prefixing the name with native (see example below).

Note: If the define wasn't originally native, the new define would have a state of Define.ADDED.

Examples

Code Block
themeRDark
languagejavascript
titleChecking a specific state
linenumberstrue
// always use strict equality checks
if (Define.stateOf("chat") === Define.REPLACED) {
	// native chat function existed, but was replaced by a script
	chat(me, "This is using the replacement chat function");


    // the native chat() function is still available via
	native.chat.native(me, "This is using the native chat function");
}
Code Block
themeRDark
languagejavascript
titleUsing a switch statement to check state
linenumberstrue
// when using switch, order of cases is vitally important
switch (Define.stateOf("chat")) {
	case Define.MISSING : return "chat() is missing";
	case Define.REMOVED : return "chat() was removed by script";
	case Define.ADDED   : return "chat() was added by script";
	case Define.REPLACED: return "chat() was overridden by script";
	case Define.NATIVE  : return "chat() function is native";
	default: return "Status of chat() is unknown";
}
Div
classbox
Availability
Status
colourGreen
titleStable

Requires:

Div
classbox
Contents

Jump to:

Table of Contents
maxLevel5

Div
classbox

Define API

Topics:

Child pages (Children Display)
alltrue
depthall
pageDefine API
excerpttrue