Javascript JS如何在不知道对象变量名称的情况下使用它们?

Javascript JS如何在不知道对象变量名称的情况下使用它们?,javascript,jquery,html,Javascript,Jquery,Html,我正在使用android应用程序的示例代码, 其中一个资产文件是包含2个JS代码的HTML 第一个JS代码在线托管在Wikitudes服务器上,第二个是HTML文件本身中的本地代码 我不明白本地代码在某些方面有什么好处,因为变量的名称不是强制性的,当我更改变量的名称时,代码仍然有效 这怎么可能呢? 我已经习惯了Java和CPP,如果你想使用对象变量,你必须知道它的名字 这是文件: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transi

我正在使用android应用程序的示例代码,
其中一个资产文件是包含2个JS代码的HTML
第一个JS代码在线托管在Wikitudes服务器上,第二个是HTML文件本身中的本地代码
我不明白本地代码在某些方面有什么好处,因为变量的名称不是强制性的,当我更改变量的名称时,代码仍然有效
这怎么可能呢?
我已经习惯了Java和CPP,如果你想使用对象变量,你必须知道它的名字
这是文件:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script src="https://www.wikitude.com/libs/architect.js"></script>
    <script type="text/javascript">
    AR.context.onLocationChanged = function(lat, lon, alt, acc) {
            var src = new AR.ImageResource("assets/marker_idle.png");
            var marker = new AR.ImageDrawable(src, 2.5, {
                zOrder: 0,
                opacity: 1.0
            });
            var markerLocation = new AR.GeoLocation(31.261809, 34.794700, 302.5);
            var markerObject = new AR.GeoObject(markerLocation, {
                drawables: {
                    cam: [marker]
                }
            }); 
    }
    </script>
</head>
<body>
</body>
</html>

AR.context.onLocationChanged=功能(纬度、经度、高度、加速度){
var src=new AR.ImageResource(“assets/marker_idle.png”);
var标记=新AR.ImageDrawable(src,2.5{
佐德:0,
不透明度:1.0
});
var markerLocation=新的AR地理位置(31.261809,34.794700,302.5);
var markeroobject=新的AR.geobject(markerLocation{
可提取物品:{
凸轮:[标记器]
}
}); 
}
奇怪的是,即使我将var“markerObject”的名称更改为其他名称,例如“myMarkerObject”,代码仍然有效!这怎么可能呢?
看起来,在线javascript代码无法知道在本地javascript代码的“onLocationChanged”函数中定义的变量名称。
那么变量是如何使用的呢?
这些变量(如“markerObject”)有什么好处?如果没有其他物体知道它们的名字?

请把我从这种恐惧中解救出来

不管你在使用什么变量,重要的是它们附加了什么函数,比如变量名为
markerObjects
new AR.geobject
。因此,
src
marker
markerLocation
都在代码中使用。唯一没有被使用的是
markeroobject
,这很可能是因为实例化
geobject
有副作用,使得无论代码做什么,都能做它自己的事情。因此,
markerObject
是一个一次性对象。@MikeMcCaughan您能举个例子说明实例化如何产生这种副作用吗?因为对我来说似乎不可能,
markerObject
的构造函数可以对其对象图中的任何内容进行更改。例如,它可以通过引用通过第二个参数传递给构造函数的
标记对
ImageDrawable
进行更改。我不知道这些对象实际上做了什么(我不知道Android或Java),但我看到过这样做的代码。。。