m
Move page script moved page API getglobal to WoW:API getglobal without leaving a redirect
No edit summary |
m (Move page script moved page API getglobal to WoW:API getglobal without leaving a redirect) |
||
| (6 intermediate revisions by 6 users not shown) | |||
| Line 1: | Line 1: | ||
{{wowapi}} | {{wowapi}} | ||
''Note: getglobal and [[API_setglobal|setglobal]] are deprecated and replaced with _G[]<ref>http://forums.worldofwarcraft.com/thread.html?topicId=25626580975&sid=1</ref>. Change all references of getglobal and setglobal:'' | |||
var = getglobal(varName) --getglobal deprecated | |||
var = _G[varName] --new syntax to get a global | |||
setglobal(otherName, otherVar) --setglobal deprecated | |||
_G[otherName] = otherVar --new syntax to set a global | |||
== Description == | |||
Get a global variable, from a string. | |||
local targetGlobal = getglobal("globalName") | |||
== Arguments == | |||
:("globalName") | :("globalName") | ||
:;globalName : String - Name of the global you want to get. | :;globalName : String - Name of the global you want to get. | ||
== Returns == | |||
:;The value from the given string, or nil if not found | |||
:;The | |||
== Details == | == Details == | ||
This function is used to get an object if you generate the name of the object manually in your script: | This function is used to get an object if you generate the name of the object manually in your script: | ||
-- i = some_dynamic_number | |||
i = some_dynamic_number | |||
local curFrame = getglobal("myFrame"..i) | local curFrame = getglobal("myFrame"..i) | ||
You can | As of the introduction of [[API getfenv|getfenv]]() into the API (as well as direct access to the table _G as a global), setglobal() and [[API getglobal|getglobal]]() are somewhat superfluous. You can always do something along the lines of: | ||
local _G = getfenv() | |||
local prevval = _G["MyVariable"] ''-- "getglobal()"'' | |||
_G["MyVariable"] = 1234 ''-- "setglobal()"'' | |||
Function calls always cost some overhead, so if a large number of getglobal calls are being made, the global table will be a faster route. Note that for few or infrequent calls the performance gain of this method is negligible (but given the lack of any loss of functionality, recommended). | |||
''Note:'' Accessing the global table through the function getfenv() was common within addons presumably because the global '[[Dump_G|_G]]' (the direct global table) was hidden from the WoW environment. It seems to have since been uncovered, and now calling it directly for global access is possible: | |||
. | local _G = _G -- a local speeds up access to [[Dump_G|_G]] slightly. negligible for infrequent calls. | ||
local prevval = _G["MyVariable"] ''-- "getglobal()"'' | |||
_G["MyVariable"] = 1234 ''-- "setglobal()"'' | |||