javascript - 从 iframe 访问父函数中的变量 (Javascript)

标签 javascript function variables iframe parent

我的主页上有一个如下所示的 JavaScript:它只是定义了一个变量

test1 = function(){
var bla= "bla";
}

在我的 iFrame 中,我有另一个 javascript,它只产生如下所示的警报

alert(parent.test1.bl);

不幸的是,出现了警告窗口,但内容显示“未定义”。如何从父窗口的函数中读取变量?

有趣的是,如果我在父窗口执行警报并仅调用 iFrame 中的函数,则会弹出警报框并包含消息。但似乎无法从父级读取变量。

最佳答案

函数没有属性,对象有。因此,在尝试使用其属性之前,您必须先实例化 test1()

test1 = function(){
    var bla= "bla";
    this.bl ="notbla";
}

alert(new test1().bl);

请注意此处关键字 this 的使用,它引用新创建的对象,并使 bl 成为一个可以在函数外部读取的属性。使用 var 声明的 blatest1() 之外无法看到,除非您不会创建另一个像 this 的属性。 bl = bla;

你的问题的“有趣的部分”确实不清楚,无论在哪里调用,你的alert()肯定会显示未定义

FunctionsObjects在 MDN。

关于javascript - 从 iframe 访问父函数中的变量 (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994767/

相关文章:

c - C 中函数指针声明中带括号的三元表达式返回函数名称的基本原理

performance - 如何在不牺牲性能的情况下将函数作为参数传递给Julia中的其他函数?

javascript - Backbone.js 和继承方法

c - printf() 改变 C 中变量的处理方式

javascript - 将选项卡关闭到左侧,同时排除固定选项卡

javascript - 使用隐藏输入在 Testcafe 中上传文件

Javascript 迭代哈希错误

javascript - 是否可以使用一组参数同时调用两个函数?

python - 访问变量的名称

php - 我可以在哪里放置 SELECT @rank :=0 in this query