Javascript “this.prototype.constructor=this;”的用途是什么?

Javascript “this.prototype.constructor=this;”的用途是什么?,javascript,Javascript,在ASP.NET ajax库中,有一行让我感到困惑 Type.prototype.registerClass = function Type$registerClass(typeName, baseType, interfaceTypes) { //.. this.prototype.constructor = this; //.. } 我知道(this.prototype.constructor==this)==true,那么这一行的意义是什么?我删除该行,并用一些代码测试库。看来没关

在ASP.NET ajax库中,有一行让我感到困惑

Type.prototype.registerClass = function Type$registerClass(typeName, baseType, interfaceTypes) {

//..

this.prototype.constructor = this;

//..
}

我知道
(this.prototype.constructor==this)==true
,那么这一行的意义是什么?我删除该行,并用一些代码测试库。看来没关系。这一行的目的是什么?

我不熟悉asp.net LIB,但是:


Javascript中的一种常见模式,特别是在尝试模拟基于类的系统时,是将原型对象重新分配给另一个对象的实例,而不是向JS提供的原型对象添加属性。一个问题是它给了你错误的构造函数——除非你用一个“正确”的值重置它。

我猜在
this.prototype.constructor=this
,一些对象被分配给prototype属性,该属性重写了
prototype.constructor
。当很容易继承对象原型,但仍然能够调用
instanceof
来查看对象实例是否属于特定类型时,通常会使用此技巧

在这种情况下,很难说出比这更具体的问题,这是一个严肃的老问题,但它可能对某些人有用