Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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 这个关键字在js中的逻辑是什么?_Javascript_Web_Function Prototypes - Fatal编程技术网

Javascript 这个关键字在js中的逻辑是什么?

Javascript 这个关键字在js中的逻辑是什么?,javascript,web,function-prototypes,Javascript,Web,Function Prototypes,有人能说出js中的“this”关键字吗。。 我看了一些例子。有一点我不明白 A.B=function() { this.x(5); // this refers to prototype of A.B } A.B.prototype= { x:function(p) { this.a(p); // this refers to prototype of A.B again // but I e

有人能说出js中的“this”关键字吗。。 我看了一些例子。有一点我不明白

   A.B=function()
    {
      this.x(5); // this refers to prototype of A.B
    }


   A.B.prototype= { 
    x:function(p)
    { this.a(p);  // this refers to prototype of A.B again  
                  // but I expect that this refers to protoype of x ???  

     }, 
        a:function(p){ return p;}
     }
如果调用方法:

a.b.c.d();
然后
这个
a.b.c
方法内部(除了最终函数名之外的所有内容)

如果调用构造函数:

var x = new Something();
然后
这是Something()中的一个新对象

在其他任何地方
是全局对象(与浏览器中的
窗口
相同)

这绝不是一个原型。这可以有一个原型

在您的示例中:

A.B = function() {
  this.x(5);
}

如果该方法被称为
A.B()
,那么它就是
A
(不一定是
A.B
)的原型,如果该方法被称为
newa.B()
,那么它就是一个新对象。请阅读以下内容:在这两种情况下,它都引用
B
实例,因此,您可以在其上调用
a
/
x
是在运行时而不是在解析/定义时确定的。仅通过查看定义,您无法判断此
将引用什么。这完全取决于函数的调用方式。