Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用';这';从功能_Javascript - Fatal编程技术网

Javascript 使用';这';从功能

Javascript 使用';这';从功能,javascript,Javascript,如何使用调用提供的函数上下文执行此匿名函数 function test(text) { this.first = 'test'; console.log(this.first); } (function(val){ return function(val) { console.log(this.first); } }()).call(test) 我相信你得到了这个在测试和测试的上下文中的值;在进入返回功能之前: (function(val){

如何使用调用提供的函数上下文执行此匿名函数

function test(text) {
    this.first = 'test';
    console.log(this.first);
}


(function(val){
    return function(val) {
        console.log(this.first);
    }
}()).call(test)

我相信你得到了
这个
测试
测试的上下文中的值;在进入返回功能之前:

(function(val){
    var self = this;   //add this line
    return function(val) {
        console.log(self.first);
    }
}()).call(test)

你为什么要这么做?因为我在学javascript。我们可以继续问这个问题吗?为什么我不应该寻求答案。我真的不建议你在学习JavaScript的OOP工具时使用JavaScript的OOP工具(例如
this
)做任何事情。理解这个问题的“为什么”非常重要,可以给你一个明智的回答。也许有更好的方法来完成你想要实现的目标。依我拙见