如何在JavaScript中引用函数变量?

Jos*_*ons 0 javascript

经验丰富的python用户学习JavaScript.

假设我定义了一个带有两个参数的函数:

function alpha(var_a, var_b){
 this.a = var_a;
 this.b = var_b;
}
Run Code Online (Sandbox Code Playgroud)

然后编写一个示例对象:

function One(){
 var a = [
   ["1"],
   ["2"],
   ["3"]
 ];

 var b = [
   ["4"],
   ["5"],
   ["6"]
 ];

 return new alpha(a, b);
}
Run Code Online (Sandbox Code Playgroud)

如果我有第三个函数,它将一个函数作为参数:

function beta(alpha){
}
Run Code Online (Sandbox Code Playgroud)

在第三个函数中,我如何引用参数函数中的变量?

Que*_*tin 6

首先,你必须调用beta并传递alpha你从调用中得到的实例One.

beta(One());
Run Code Online (Sandbox Code Playgroud)

然后,你可以访问alpha.aalpha.b里面(注意,这alpha是局部变量alpha的函数原型的参数名称创建,而不是全球性alpha的函数声明创建).

注意:约定规定你在JS中使用大写字符启动一个函数名,当它是一个构造函数时.所以,你应该有Alphaone,而不是alphaOne.


让我们用较少混淆的变量名重写所有代码.

function MyConstructor(var_a, var_b) {
    this.a = var_a;
    this.b = var_b;
}

function createInstanceWithData() {
    var a = [
        ["1"],
        ["2"],
        ["3"]
    ];

    var b = [
        ["4"],
        ["5"],
        ["6"]
    ];

    return new MyConstructor(a, b);
}

function logData(someInstance) {
    console.log(someInstance.a, someInstance.b);
}

logData(createInstanceWithData());
Run Code Online (Sandbox Code Playgroud)