如何在功能体外仍可访问prop1?
function myFunc() {
var prop1 = 10;
this.myChildFunc = function() {
alert("value of prop1: " + prop1);
}
}
myFunc();
myFunc.prop1 = 20; // How prop1 is still accessible using function name ? and outside function scope?
alert("prop1:" + myFunc.prop1);
函数是对象,因此它们可以具有属性,但是这些仅仅是属性,仅此而已。
因此,您在函数(var prop1
)中声明的variable与函数对象(myFunc.prop1
)上的property无关。它们只是具有相同的名称。要查看它,让我们看一下:
function myFunc() {
var prop1 = 10;
console.log(prop1);
}
myFunc(); //10
console.log(myFunc.prop1); //undefined - no such property
myFunc.prop1=20; //myFunc.prop1 is now 20
myFunc(); //variable is still 10
console.log(myFunc.prop1) //property is still 20