2017-08-29 1 views
0

Comment faire pour obtenir cette variable locale dans le script principal. Comment puis-je en faire une variable globale? Cette variante ne fonctionne pas, merci pour l'aide.Comment obtenir cette variable locale dans le script principal.

//Test Script local to global 
 

 
    (function (exampleCode) { 
 
\t  "use strict"; 
 
\t 
 
    var wert = 0.5; 
 
    var name = 'wert'; 
 

 
    Object.assign(exampleCode, { 
 
    
 
    \t  getValue: function() { 
 
    
 
    \t  return name; 
 
     
 
\t  } 
 
    
 
\t  }); 
 
\t 
 
    })(window.exampleCode = window.exampleCode || {}); 
 

 

 
    ///////////////////////////////////////////////////////////////////// 
 

 
    //main script get 'var wert = 0.5' from Test Script 
 

 
     var update = function() { 
 
\t \t  requestAnimationFrame(update); \t \t \t \t  \t \t 
 
\t \t \t  //var value = wert;  //0.5 
 
\t \t \t  console.log(exampleCode.getValue()); 
 
\t \t \t  mesh.morphTargetInfluences[ 40 ] = params.influence1 = value; \t \t 
 
\t \t }; \t 
 
\t \t \t 
 
\t \t update(); \t \t

Répondre

0

Si je comprends bien, vous avez besoin d'un lien vers le champ extérieur de la fonction getValue pour obtenir cette variable. Ainsi, vous pouvez stocker vos données dans un objet, puis renvoyer myVars[propName]; dans getValue(propName) après avoir entré un nom pour la propriété que vous souhaitez obtenir. Plus tard, il prendra sa valeur (0.5) à travers la fermeture.

(function (exampleCode) { 
 
    "use strict"; 
 
\t 
 
    let myVars = { 
 
     wert: 0.5 
 
    }; 
 

 
    Object.assign(exampleCode, { 
 
     getValue: propName => myVars[propName] 
 
    }); 
 
\t 
 
    })(window.exampleCode = window.exampleCode || {}); 
 
    
 
    let update = function() { \t \t \t  \t \t 
 
     let value = exampleCode.getValue('wert');  //0.5 
 
\t  console.log(value); 
 
\t  //mesh.morphTargetInfluences[ 40 ] = params.influence1 = value; \t \t 
 
\t }; \t 
 
\t \t \t 
 
\t update(); \t

Une alternative est de faire wert propriété de exampleCode et de prendre sa valeur par this:

(function (exampleCode) { 
 
    "use strict"; 
 

 
    Object.assign(exampleCode, { 
 
     getValue: function(propName) { return this[propName]; }, 
 
     wert: 0.5 
 
    }); 
 
    \t 
 
})(window.exampleCode = window.exampleCode || {}); 
 
     
 
let update = function() { \t \t \t  \t \t 
 
    let value = exampleCode.getValue('wert'); 
 
    console.log(value); \t \t 
 
}; \t 
 
    \t \t \t 
 
update(); \t

+0

Oui, exactement après, je l'ai recherché, merci toi – Tom