7
votes

JavaScript appelant une fonction sur l'objet fenêtre

J'ai le code suivant et je me demande comment faire le dernier travail de la ligne. J'ai ajouté un ensemble d'API que l'utilisation actuelle _View annexée en tant que convention sur le nom de noms et préférerait utiliser quelque chose comme ARC.View. $ Function_Name. THX

var arc={};
arc.view={
  say_hello: function(){
    alert("I want to say hello");
  }
}
function say_goodbye(){
  alert("goodbye to you");
}

arc.view.say_hello(); // works
window['say_goodbye'](); // works
// possible to make this work?
window['arc.view.say_hello']();


1 commentaires

À cause de vous, je finis à ma journée en difficulté avec un succès ... merci +1


3 Réponses :


11
votes
someOtherObject["a key string with spaces and {special characters}"]();

0 commentaires

3
votes

essayez ceci :

jsfiddle < Pré> xxx


0 commentaires

2
votes

Utilisation de la notation de support carré, vous demandez réellement à exécuter une fonction dans la fenêtre appelée arc.view.say_hello , et non une fonction dans l'objet Voir (que est une propriété de l'objet arc ). Pour être plus explicite: xxx

Si vous souhaitez appeler une fonction de la manière dont vous avez décrite, vous devez "résoudre" la chaîne des objets. Vous pouvez créer une fonction utilitaire pour cela. Quelque chose comme: xxx

Vous pouvez également étendre la fonction utilitaire pour utiliser arguments (ou vous pouvez simplement renvoyer la référence à la fonction).


0 commentaires