在对象内的JavaScript函数中,哪个作用域表示这一点?

在对象内的JavaScript函数中,哪个作用域表示这一点?,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,我有一个JavaScript代码,看起来像下面的摘录。 在第一线 此范围是否包含作为参数传递给构造函数的用户实例 我已经读过了,但是,据我所知,在setAdmin中,这个指的是MyClass,它不包括(或者是否?)传递给构造函数的user等参数 export interface IUser { noaOrganisationList: IOrganisation[]; } export interface IOrganisation { id?: number; name?

我有一个JavaScript代码,看起来像下面的摘录。 在第一线

范围是否包含作为参数传递给构造函数的
用户
实例

我已经读过了,但是,据我所知,在
setAdmin
中,这个
指的是
MyClass
,它不包括(或者是否?)传递给构造函数的
user
等参数

export interface IUser {
  noaOrganisationList: IOrganisation[];
}

export interface IOrganisation {
    id?: number;
    name?: string;
    businessKey: string;
}

export class MyClass {

  orgBusinessKey: string = '';

  constructor(public user: IUser)
  {
    this.setAdmin(user);
  }

  setAdmin(user: IUser): void {
    if (user && user.noaOrganisationList && !_.isEmpty(user.noaOrganisationList)) {
      this.orgBusinessKey = this.user.noaOrganisationList[0].businessKey;
    }
  }
}
setAdmin这指的是MyClass,它不包括(或者是否包括?)诸如传递给构造函数的用户之类的参数

export interface IUser {
  noaOrganisationList: IOrganisation[];
}

export interface IOrganisation {
    id?: number;
    name?: string;
    businessKey: string;
}

export class MyClass {

  orgBusinessKey: string = '';

  constructor(public user: IUser)
  {
    this.setAdmin(user);
  }

  setAdmin(user: IUser): void {
    if (user && user.noaOrganisationList && !_.isEmpty(user.noaOrganisationList)) {
      this.orgBusinessKey = this.user.noaOrganisationList[0].businessKey;
    }
  }
}
您是对的,
这个
是对当前正在构造的MyClass实例的引用。但是,由于您将参数标记为public,因此typescript将用户置于
this.user
上。将构造函数的参数标记为public(或private)是typescript为将参数分配到类实例提供的快捷方式

如果有帮助,下面是代码的传输版本:

define(["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var MyClass = /** @class */ (function () {
        function MyClass(user) {
            this.user = user; //  <------------------ SEE THIS LINE
            this.orgBusinessKey = '';
            this.setAdmin(user);
        }
        MyClass.prototype.setAdmin = function (user) {
            if (user && user.noaOrganisationList && !_.isEmpty(user.noaOrganisationList)) {
                this.orgBusinessKey = this.user.noaOrganisationList[0].businessKey;
            }
        };
        return MyClass;
    }());
    exports.MyClass = MyClass;
});
define([“require”,“exports”],函数(require,exports){
“严格使用”;
defineProperty(导出,“\uu esModule”{value:true});
var MyClass=/**@class*/(函数(){
函数MyClass(用户){
this.user=user;//
setAdmin这指的是MyClass,它不包括(或者是否包括?)诸如传递给构造函数的用户之类的参数

export interface IUser {
  noaOrganisationList: IOrganisation[];
}

export interface IOrganisation {
    id?: number;
    name?: string;
    businessKey: string;
}

export class MyClass {

  orgBusinessKey: string = '';

  constructor(public user: IUser)
  {
    this.setAdmin(user);
  }

  setAdmin(user: IUser): void {
    if (user && user.noaOrganisationList && !_.isEmpty(user.noaOrganisationList)) {
      this.orgBusinessKey = this.user.noaOrganisationList[0].businessKey;
    }
  }
}
您是对的,
this
是对当前正在构造的MyClass实例的引用。但是,由于您将参数标记为public,typescript将用户置于
this.user
上。将构造函数的参数标记为public(或private)是typescript提供的快捷方式,用于将参数分配给类的实例

如果有帮助,下面是代码的传输版本:

define(["require", "exports"], function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var MyClass = /** @class */ (function () {
        function MyClass(user) {
            this.user = user; //  <------------------ SEE THIS LINE
            this.orgBusinessKey = '';
            this.setAdmin(user);
        }
        MyClass.prototype.setAdmin = function (user) {
            if (user && user.noaOrganisationList && !_.isEmpty(user.noaOrganisationList)) {
                this.orgBusinessKey = this.user.noaOrganisationList[0].businessKey;
            }
        };
        return MyClass;
    }());
    exports.MyClass = MyClass;
});
define([“require”,“exports”],函数(require,exports){
“严格使用”;
defineProperty(导出,“\uu esModule”{value:true});
var MyClass=/**@class*/(函数(){
函数MyClass(用户){
this.user=用户//