相关疑难解决方法(0)

没有黑客攻击,私有JavaScript函数无法访问'this'对象?

我正在研究一个项目一段时间,试图找出我做错了什么,当我最终将"错误"缩小到下面的代码不能按预期工作的事实时:

function Alpha()
    {
    this.onion = 'onion';

    function Beta()
        {
        alert(this.onion);
        }

    Beta();
    }

alpha1 = new Alpha();
// Alerts 'undefined'
Run Code Online (Sandbox Code Playgroud)

但是,如果我将代码更改为:

function Alpha()
    {
    var self = this;
    this.onion = 'onion';

    function Beta()
        {
        alert(self.onion);
        }

    Beta();
    }

alpha1 = new Alpha();
// Alerts 'onion'
Run Code Online (Sandbox Code Playgroud)

它像我期望的那样工作.在浪费了我生命中的大部分时间之后,任何人都可以解释为什么它会像这样工作吗?

javascript private this

7
推荐指数
2
解决办法
1312
查看次数

标签 统计

javascript ×1

private ×1

this ×1