Lớp có phải là một hàm trong javascript không?

Các lớp trong ES6 trên thực tế là các hàm. cú pháp

John Doe

0 mới giới thiệu các biểu thức lớp và khai báo lớp, tương tự như các biểu thức hàm và khai báo hàm

Khai báo lớp cho phép định nghĩa một lớp bằng cách sử dụng từ khóa

John Doe

0 theo sau là tên của lớp tôi. e

class Human {
	constructor[] {}
}

Điều quan trọng cần nhớ là, không giống như khai báo hàm, khai báo lớp không được nâng lên, điều đó có nghĩa là lớp phải được xác định trước khi sử dụng nó

Biểu thức lớp là cách ít phổ biến hơn để xác định một lớp. tương tự như các biểu thức hàm, nó có thể được đặt tên hoặc đặt tên, i. e

Các chức năng được giới thiệu thông qua cú pháp

John Doe

0 phải được khởi tạo bằng từ khóa

John Doe

3. Đặc tả ES2015 nói rằng biểu diễn chuỗi của hàm trong JavaScript phải cung cấp cú pháp thực tế của khai báo hàm, biểu thức hàm, khai báo trình tạo, biểu thức trình tạo, khai báo lớp, biểu thức lớp, hàm mũi tên, định nghĩa phương thức hoặc phương thức trình tạo tùy thuộc vào đặc điểm thực tế

Vì lý do đó, cách đơn giản nhất để kiểm tra xem một hàm có thuộc lớp ES6 hay không là kiểm tra kết quả của việc áp dụng phương thức

John Doe

4 trên nó

Một lớp JavaScript là một kế hoạch chi tiết để tạo các đối tượng. Một lớp đóng gói dữ liệu và các hàm thao tác dữ liệu

Không giống như các ngôn ngữ lập trình khác như Java và C#, các lớp JavaScript là đường cú pháp trên sự kế thừa nguyên mẫu. Nói cách khác, các lớp ES6 chỉ là các chức năng đặc biệt

Các lớp trước ES6 được xem lại

Trước ES6, JavaScript không có khái niệm về lớp. Để bắt chước một lớp, bạn thường sử dụng mẫu hàm tạo/nguyên mẫu như trong ví dụ sau

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]

đầu ra

John Doe

Làm thế nào nó hoạt động

Đầu tiên, tạo

John Doe

3 dưới dạng hàm tạo có tên thuộc tính là

John Doe

4. Hàm

John Doe

5 được gán cho

John Doe

6 để nó có thể được chia sẻ bởi tất cả các phiên bản của loại

John Doe

3

Sau đó, tạo một phiên bản mới của loại

John Doe

3 bằng cách sử dụng toán tử

John Doe

9. Do đó, đối tượng

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
00 là một thể hiện của

John Doe

3 và

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
02 thông qua kế thừa nguyên mẫu

Các câu lệnh sau sử dụng toán tử

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
03 để kiểm tra xem

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
00 có phải là một thể hiện của loại

John Doe

3 và

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
02 không

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
0

Khai báo lớp ES6

ES6 đã giới thiệu một cú pháp mới để khai báo một lớp như trong ví dụ này

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
8

Lớp

John Doe

3 này hoạt động giống như loại

John Doe

3 trong ví dụ trước. Tuy nhiên, thay vì sử dụng một hàm tạo/mẫu nguyên mẫu, nó sử dụng từ khóa

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
09

Trong lớp

John Doe

3, lớp

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
81 là nơi bạn có thể khởi tạo các thuộc tính của một thể hiện. JavaScript tự động gọi phương thức

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
81 khi bạn khởi tạo một đối tượng của lớp

Sau đây tạo một đối tượng

John Doe

3 mới, đối tượng này sẽ tự động gọi

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
81 của lớp

John Doe

3

John Doe

8

John Doe

5 được gọi là một phương thức của lớp

John Doe

3. Giống như một hàm tạo, bạn có thể gọi các phương thức của một lớp bằng cú pháp sau

John Doe

1

Ví dụ

John Doe

2

Để xác minh rằng các lớp là các hàm đặc biệt, bạn có thể sử dụng toán tử

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
88 của để kiểm tra loại của lớp

John Doe

3

John Doe

5

Nó trả về

John Doe

80 như mong đợi

Đối tượng

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
00 cũng là một thể hiện của các loại

John Doe

3 và

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
02

function Person[name] { this.name = name; } Person.prototype.getName = function [] { return this.name; }; var john = new Person["John Doe"]; console.log[john.getName[]];

Code language: JavaScript [javascript]
0

lớp vs. loại tùy chỉnh

Mặc dù có những điểm tương đồng giữa một lớp và một loại tùy chỉnh được xác định thông qua hàm tạo, nhưng vẫn có một số khác biệt quan trọng

Đầu tiên, khai báo lớp không được nâng lên như khai báo hàm

Ví dụ: nếu bạn đặt đoạn mã sau lên trên phần khai báo lớp

John Doe

3, bạn sẽ nhận được một

John Doe

85

John Doe

8

Lỗi

John Doe

0

Thứ hai, tất cả mã bên trong một lớp tự động thực thi ở chế độ nghiêm ngặt. Và bạn không thể thay đổi hành vi này

Thứ ba, các phương thức lớp không thể đếm được. Nếu bạn sử dụng mẫu hàm tạo/mẫu nguyên mẫu, bạn phải sử dụng phương thức

John Doe

86 để tạo thuộc tính không thể đếm được

Cuối cùng, gọi hàm tạo của lớp mà không có toán tử

John Doe

9 sẽ dẫn đến lỗi như trong ví dụ sau

John Doe

1

Lỗi

John Doe

2

Lưu ý rằng có thể gọi hàm tạo mà không cần toán tử

John Doe

9. Trong trường hợp này, hàm tạo hoạt động như một hàm thông thường

Là một lớp một chức năng?

Hàm làm những việc cụ thể, lớp là những việc cụ thể . Các lớp thường có các phương thức, là các hàm được liên kết với một lớp cụ thể và thực hiện những việc liên quan đến thứ mà lớp đó là - nhưng nếu tất cả những gì bạn muốn là làm một cái gì đó, thì một hàm là tất cả những gì bạn cần.

Chức năng IS và lớp giống nhau trong JavaScript?

Các hàm là hạng nhất trong JavaScript và chúng có thể có thuộc tính hoặc là thuộc tính của các đối tượng khác. Một hàm tạo của lớp tạo một thể hiện của lớp. Hàm tạo trong JavaScript chỉ là một hàm cũ đơn giản trả về một đối tượng.

Là lớp một chức năng hoặc đối tượng?

Lớp là kiểu dữ liệu do người dùng định nghĩa có các thành phần dữ liệu và hàm thành viên . Các thành viên dữ liệu là các biến dữ liệu và các hàm thành viên là các hàm được sử dụng để thao tác các biến này và cùng với các thành viên dữ liệu này và các hàm thành viên xác định các thuộc tính và hành vi của các đối tượng trong Lớp.

Lớp trong JavaScript là gì?

Lớp là mẫu để tạo đối tượng . Họ đóng gói dữ liệu bằng mã để làm việc trên dữ liệu đó. Các lớp trong JS được xây dựng trên nguyên mẫu nhưng cũng có một số cú pháp và ngữ nghĩa không được chia sẻ với ngữ nghĩa giống như lớp ES5.

Chủ Đề