相关疑难解决方法(0)

匿名函数的上下文是什么?

我有这样的代码:

function demo() {
    this.val=5;
    function() {
        this.val=7;
    }();
}
Run Code Online (Sandbox Code Playgroud)

现在,当我在firefox或chrome控制台中执行此代码时,它会出现语法错误.我不明白为什么这是一个错误,因为我已经读过javascript函数是对象所以当我调用匿名函数时,里面this指向函数demo并且应该更改为valto 7,所以如果我这样做

var x=new demo();
x.val;   //should give 7
Run Code Online (Sandbox Code Playgroud)

但是当我这样做的时候

function demo() {
    this.val=5;
    var f=function() {
            this.val=7;
    }();
}
window.val;    // gives 7
Run Code Online (Sandbox Code Playgroud)

我不明白函数是否是对象然后this匿名函数指向window和不指向的原因demo.请解释一下.

javascript this anonymous-function

6
推荐指数
1
解决办法
2419
查看次数

标签 统计

anonymous-function ×1

javascript ×1

this ×1