var __decorator =(this && this .__ decorate)||上的第一个操作数是什么? function(){...}尝试做什么?

当TypeScript装饰器(类装饰器)被转换为JavaScript时,它会产生以下内容:

var __decorate = (this && this.__decorate) || function (decorators,target,key,desc) {
    var c = arguments.length,r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target,key) : desc,d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators,desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target,r) : d(target,key)) || r;
    return c > 3 && r && Object.defineProperty(target,r),r;
};

现在,当var __decorate返回(this && this.__decorate)时,分配给true变量的内容是什么?

此外,如果它被废弃了,它将如何影响整个代码?

yu8023fei 回答:var __decorator =(this && this .__ decorate)||上的第一个操作数是什么? function(){...}尝试做什么?

JS不需要从逻辑语句中返回falseA || BA && B将返回A(如果为真)或B(如果A为假)。同样,||如果错误则返回A,否则返回B。

&&(A && A.B)也是所谓的短路运算符,其中,如果不需要第二操作数来确定结果,则甚至不执行第二操作数。因此,A.B通常用于获取A的值,同时防止A = B || C被未定义,或者A用于将B设置为C (如果已定义),或者如果未定义,则声明(this && this._decorate)

例如,请参见MDN了解更多详细信息。

_decorate似乎正在检查this上是否已定义this。首先,它是检查是否定义了this._decorate(否则将引发错误),然后检查该值。如果已经定义了this._decorate,则将跳过函数声明(因为现有的!函数与所有函数一样都是真实的)。

唯一可以保证返回实际布尔值的JS运算符是非运算符INSTALLED_APPS = [ 'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','Theme'

本文链接:https://www.f2er.com/2914998.html

大家都在问