Angular 4 Class против нового ClassName () Разница - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть образец приложения, модель которого приведена ниже.

Класс продукта содержит запасы и класс категории и передает класс продукта в компоненте.

В компоненте продукта, который мне нужно использовать здесь для связывания в трех разных сетках.

 productResposne = new Product();  // which is best 1st 

  productResponse = Product;  // What is the main difference between 1st and 2nd.

   productResposne = Array<Product>[]; //3rd 



 export class ProductComponent implements OnInit{



       productResponse = Product;

    or 
    productResposne = new Product();

    or 

    productResposne = Array<Product>[]

Структура;

export class Product{

productId:number;
productName:string;
productprice:number;
productcategory:ProductCategory;
productstocks:Stocks;

}

export class ProductCategory{
categoryID:number;
categorytype:string;
categoryPlace:string;

}

export class Stocks{
StockId:number;
StockQty:number;
StocktotalPrice:number;

}


In component:


export class ProductComponent implements OnInit{

productResponse = Product;

or 
productResposne = new Product();

or 

productResposne = Array<Product>[]


ngOnInit(){
this.getProduct();
}
 getProduct(){
 this._productService.getProduct(productId).subscribe(responsess => {

// get the response
 this.responsess = responsess;

bind in category grid
    this.ProductCategory = responsess[0].ProductCategory;

/

/ bind ins stock grid
    this.Stocks = responsess[0].Stocks;
// bind in product grid
    this.Product = responsess[0].Product;

    // These 3 resposes show it in three different grid

    }),(err)=> {this.errorMsg =<any>err};


    }

Код работает нормально, мне нужно знать разницу между этими двумя:

productResposne = new Product();  // which is best 1st 

  productResponse = Product;

что является лучшей стратегией.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Это просто случай указателей: если вы не используете new, при обращении к объекту вы изменяете его значение, и это произойдет, если вы поместите свой объект в переменную, а затем также измените его значение.

Конечно, лучшая стратегия - использовать new, потому что вы можете обращаться к объекту в любое время, когда хотите, создавая singleton (если можно так назвать) этого объекта, обрабатывая его как интерфейс

0 голосов
/ 26 апреля 2018

Как вы можете (или не можете) знать, для работы Typescript необходим компилятор.

Как только код скомпилирован, это действительный Javascript.

А в Javascript нет классов как таковых: функции обрабатывают создание объектов.

поэтому, когда вы пишете, что

productResposne = new Product();

Вы вызываете функцию для создания объекта

И когда ты это называешь

productResponse = Product;

Вы ссылаетесь на функцию с другой ссылкой .

...