GeneratorFunction

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.

Đối tượng GeneratorFunction cung cấp các phương thức cho hàm generator. Trong JavaScript, mỗi hàm generator thực ra là một đối tượng GeneratorFunction.

Lưu ý rằng GeneratorFunction không phải là đối tượng toàn cục. Nó có thể được lấy bằng đoạn code sau:

js
const GeneratorFunction = function* () {}.constructor;

GeneratorFunction là lớp con của Function.

Try it

const GeneratorFunction = function* () {}.constructor;

const foo = new GeneratorFunction(`
  yield 'a';
  yield 'b';
  yield 'c';
`);

let str = "";
for (const val of foo()) {
  str += val;
}

console.log(str);
// Expected output: "abc"

Constructor

GeneratorFunction()

Tạo đối tượng GeneratorFunction mới.

Thuộc tính instance

Cũng kế thừa các thuộc tính instance từ lớp cha Function.

Các thuộc tính này được định nghĩa trên GeneratorFunction.prototype và được chia sẻ bởi tất cả các instance GeneratorFunction.

GeneratorFunction.prototype.constructor

Hàm constructor đã tạo đối tượng instance. Đối với các instance GeneratorFunction, giá trị khởi tạo là constructor GeneratorFunction.

GeneratorFunction.prototype.prototype

Tất cả các hàm generator chia sẻ cùng một thuộc tính prototype, là Generator.prototype. Mỗi hàm generator được tạo bằng cú pháp function* hoặc constructor GeneratorFunction() cũng có thuộc tính prototype riêng, có prototype là GeneratorFunction.prototype.prototype. Khi hàm generator được gọi, thuộc tính prototype của nó trở thành prototype của đối tượng generator được trả về.

GeneratorFunction.prototype[Symbol.toStringTag]

Giá trị khởi tạo của thuộc tính [Symbol.toStringTag] là chuỗi "GeneratorFunction". Thuộc tính này được dùng trong Object.prototype.toString().

Đây là các thuộc tính riêng của mỗi instance GeneratorFunction.

prototype

Được sử dụng khi hàm được dùng như constructor với toán tử new. Nó sẽ trở thành prototype của đối tượng mới.

Phương thức instance

Kế thừa các phương thức instance từ lớp cha Function.

Đặc tả kỹ thuật

Specification
ECMAScript® 2027 Language Specification
# sec-generatorfunction-objects

Tương thích trình duyệt

Xem thêm