2017-02-08 18 views
7

Ai đó có thể cho biết "..." trong mã dưới đây trong ví dụ "Giới thiệu về góc cạnh"?Ý nghĩa của "foo (... arg)" (ba dấu chấm trong một cuộc gọi hàm) là gì?

getHeroes() { 
    this.backend.getAll(Hero).then((heroes: Hero[]) => { 
     this.logger.log(`Fetched ${heroes.length} heroes.`); 
     this.heroes.push(...heroes); // fill cache 
    }); 
+1

https: //developer.mozilla. org/nl/docs/Web/JavaScript/Tham chiếu/Toán tử/Spread_operator – Shilly

Trả lời

9

Điều này không liên quan gì đến jQuery hoặc Góc. Đó là một tính năng được giới thiệu trong ES2015.

Việc sử dụng cụ thể này là ...doesn't actually have an official name. Một tên phù hợp với các mục đích sử dụng khác sẽ là "đối số lan truyền" (một thuật ngữ chung sẽ là "spread syntax"). Nó "phát nổ" (spread) một có thể lặp lại và chuyển từng giá trị làm đối số cho hàm. Ví dụ bạn là tương đương với:

this.heroes.push.apply(this.heroes, Array.from(heroes)); 

Bên cạnh đó là ngắn gọn hơn, một lợi thế của ... ở đây là nó có thể được dễ dàng hơn sử dụng với lập luận cụ thể khác:

func(first, second, ...theRest); 

// as opposed to the following or something similar: 
func.apply(null, [first, second].concat(Array.from(heroes))); 
Các vấn đề liên quan