繁体   English   中英

如何从iframe调用父文档中的嵌套函数

[英]How do I call a nested function in a parent document from an iframe

在父母中:

function outer(){
    function inner(){
        alert("hello");
    }
}

在iframe中

parent.outer.inner();

不起作用。

编辑:所以他们是私人的。 没问题。 这样做的原因是尝试将这些功能尽可能地隐藏在全局范围之外。 我认为将它们放在一个具有唯一名称的函数名称后面是最好的方法。

基本上我需要

父:

function outer(action){

    if(action == "inner")
       inner()

    function inner(){
        alert("hello");
    }
}

iframe:parent.outer(“内部”);

有没有更优雅的方式做到这一点?

嵌套函数是私有的,最多只能为外部函数之外的内部函数指定参数。

可以在https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope下的“嵌套函数和闭包”下找到说明。

通过使用闭包:

   function outer(){
        function inner(){
        alert("I am Inner");
        }
        return inner ;
   }
   var x = outer();
   x();

如果您想使用内部函数的变量,我们可以这样进行:

  function outer(){
        function inner(){
         var y=10;  return y;    
       }
       return inner ;
 }
 var x = outer();
 x();

这似乎很好地回答了我的编辑问题如何将字符串转换为javascript函数调用?

一种方法是使用对象

function Outer(){
    this.inner = function(){
        alert("hello");
    }
}

var o = new Outer()
o.inner();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM