用于访问变量的var关键字作用域和函数名

问题描述 投票:-1回答:1

如何在功能体外仍可访问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);
javascript var
1个回答
1
投票

函数是对象,因此它们可以具有属性,但是这些仅仅是属性,仅此而已。

因此,您在函数(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
© www.soinside.com 2019 - 2024. All rights reserved.