Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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,我有一个JavaScript函数: function main() { console.log(this); } 为什么要记录这个文档?当然它应该记录函数main 如果不是,那么如何在main中声明一个变量,以供代码的其余部分访问为main.varName 谢谢大家! 嘿,你可以这样做 但这看起来像一个类对象 <script> function main() { this.testVar = "124"; } var testMai

我有一个JavaScript函数:

function main() {
   console.log(this);
}
为什么要记录这个
文档
?当然它应该记录
函数main

如果不是,那么如何在
main
中声明一个变量,以供代码的其余部分访问为
main.varName


谢谢大家!

嘿,你可以这样做

但这看起来像一个类对象

<script>

    function main() {
        this.testVar = "124";
    }

    var testMain = new main();

    alert(testMain.testVar);

</script>

函数main(){
this.testVar=“124”;
}
var testMain=newmain();
警报(testMain.testVar);
另一种方法是只创建一个普通的全局变量

我采用的代码是一种更为类对象的方式


希望我能提供帮助:)

这个
关键字引用函数的上下文,而不是函数本身

当您将函数作为对象的方法调用时,则
引用该对象,否则上下文为全局上下文(文档)

例如:

var o = {
  name: 'myObject',
  fn: function(){ alert(this.name); }
};

o.fn(); // alerts "myObject"
由于函数也是对象,因此可以向其添加属性:

function main() {
}

main.varName = 42;

alert(main.varName); // shows "42"
但是,这不是函数和对象的常规使用。如果要访问
main.varName

也请查看


标准答案:
这取决于调用函数的方式;这是动态的,猴子可以修补。@Rahultripati哦,是的。。。抱歉,“this”指向全局窗口对象,如果调用new main(),则指向新创建的对象;不,我没有错。你的回答也缺乏理由。请发表更多的补充意见,你现在的意见是没有建设性的。
var person = function(){
   return module = {
      setName: function(name){
         module.name=name;
      }
   }
};

var bill = person();
bill.setName('bill');
console.log(bill.name);