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

从iframe(Javascript)访问父函数中的变量,javascript,function,variables,iframe,parent,Javascript,Function,Variables,Iframe,Parent,我的主页上有如下javascript:它只定义了一个变量 test1 = function(){ var bla= "bla"; } 在我的iFrame中,我有另一个javascript,它只生成如下所示的警报 alert(parent.test1.bl); 不幸的是,警报窗口出现,但内容显示“未定义”。如何从父窗口中的函数中读取变量 有趣的是,如果我在父窗口执行警报,并且只从iFrame中调用函数,警报框就会弹出,消息也会包含在内。但似乎无法从父级读取变量。函数没有属性,对象有属性。因此,

我的主页上有如下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
成为一个属性,可以在函数之外读取<在
test1()
之外无法看到用
var
声明的code>bla
,除非您不创建另一个类似
this.bl=bla的属性

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


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

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

alert(new test1().bl);
注意这里使用的关键字
this
,它引用了新创建的对象,使
bl
成为一个属性,可以在函数之外读取<在
test1()
之外无法看到用
var
声明的code>bla
,除非您不创建另一个类似
this.bl=bla的属性

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


在MDN.

我想你是说
parent.window.variable
?你问题的最后一部分不清楚。以下是警报的作用:我想你的意思是
parent.window.variable
?问题的最后一部分不清楚。以下是警报的作用:嗨,蒂姆,工作起来很有魅力!!:)嗨,蒂姆,工作起来很有魅力!!:)