如何将此语言环境变量放入主脚本中。我怎样才能从中创建一个全局变量?此变体不起作用,感谢您的帮助。
//Test Script local to global
(function (exampleCode) {
"use strict";
var wert = 0.5;
var name = 'wert';
Object.assign( exampleCode, {
getValue: function() {
return name;
}
} );
} )( window.exampleCode = window.exampleCode || {} );
/////////////////////////////////////////////////////////////////////
//main script get 'var wert = 0.5' from Test Script
var update = function() {
requestAnimationFrame(update);
//var value = wert; //0.5
console.log( exampleCode.getValue() );
mesh.morphTargetInfluences[ 40 ] = params.influence1 = value;
};
update();

答案 0 :(得分:0)
如果我理解正确,您需要指向getValue
函数外部范围的链接以获取该变量。因此,您可以将数据存储在对象中,然后在传递您想要获取的属性的名称后,在myVars[propName];
中返回getValue(propName)
。稍后它将通过闭包获得其值(0.5)。
(function (exampleCode) {
"use strict";
let myVars = {
wert: 0.5
};
Object.assign( exampleCode, {
getValue: propName => myVars[propName]
} );
} )( window.exampleCode = window.exampleCode || {} );
let update = function() {
let value = exampleCode.getValue('wert'); //0.5
console.log( value );
//mesh.morphTargetInfluences[ 40 ] = params.influence1 = value;
};
update();

另一种方法是使wert
属性为exampleCode
,并通过this
获取其值:
(function (exampleCode) {
"use strict";
Object.assign( exampleCode, {
getValue: function(propName) { return this[propName]; },
wert: 0.5
} );
} )( window.exampleCode = window.exampleCode || {} );
let update = function() {
let value = exampleCode.getValue('wert');
console.log( value );
};
update();