如何将此语言环境变量放入主脚本中。

时间:2017-08-29 14:22:27

标签: javascript three.js

如何将此语言环境变量放入主脚本中。我怎样才能从中创建一个全局变量?此变体不起作用,感谢您的帮助。



    //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();		




1 个答案:

答案 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();