Hướng dẫn javascript deep dive - tìm hiểu sâu về javascript

Sử dụng thuật ngữ đơn giản và một ví dụ trong thế giới thực, bài đăng này giải thích

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 là gì và tại sao nó hữu ích.

Nội dung chính ShowShow

  • Đây là cho bạn
  • Chức năng so với lập trình hướng đối tượng
  • Phương pháp tiếp cận chức năng
  • Cách tiếp cận hướng đối tượng
  • Điều này có liên quan gì đến điều này?
  • Cuối cùng, cái này là gì
  • Ràng buộc rõ ràng này
  • Hàm mũi tên
  • Sự kết luận

Đây là cho bạn

Chức năng so với lập trình hướng đối tượng

Phương pháp tiếp cận chức năngwhat
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 is and why it is helpful in a simple manner without unnecessary jargon.

Cách tiếp cận hướng đối tượng

Điều này có liên quan gì đến điều này?

Cuối cùng, cái này là gì

Ràng buộc rõ ràng nàyfunctional programming and object-oriented programming.

Chức năng so với lập trình hướng đối tượng

Phương pháp tiếp cận chức năng

Cách tiếp cận hướng đối tượng

Điều này có liên quan gì đến điều này?

Cuối cùng, cái này là gì

Ràng buộc rõ ràng này

Hàm mũi tên

Sự kết luận

Tôi đã nhận thấy rằng nhiều lời giải thích cho

  • const fullNames = getFullNames[data]
    // ['Ross, Bob', 'Smith, Joanna', ...]
    3 trong JavaScript được dạy cho rằng bạn đang đến từ một số ngôn ngữ lập trình hướng đối tượng như Java, C ++ hoặc Python. Bài đăng này hướng đến những người bạn không có định kiến ​​về những gì bạn nghĩ
    const fullNames = getFullNames[data]
    // ['Ross, Bob', 'Smith, Joanna', ...]
    3is hoặc nó nên là gì. Tôi sẽ cố gắng giải thích
    const fullNames = getFullNames[data]
    // ['Ross, Bob', 'Smith, Joanna', ...]
    3 là gì và tại sao nó hữu ích một cách đơn giản mà không có biệt ngữ không cần thiết.what
    const fullNames = getFullNames[data]
    // ['Ross, Bob', 'Smith, Joanna', ...]
    3 is and why it is helpful in a simple manner without unnecessary jargon.
  • Có lẽ bạn đã trì hoãn lặn vào
  • const fullNames = getFullNames[data]
    // ['Ross, Bob', 'Smith, Joanna', ...]
    3 vì nó trông kỳ lạ và đáng sợ. Hoặc có thể bạn chỉ sử dụng nó bởi vì StackoverFlow nói rằng bạn cần nó để thực hiện một số điều nhất định trong React.

Phương pháp tiếp cận chức năng

Cách tiếp cận hướng đối tượng

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]

Điều này có liên quan gì đến điều này?

Cuối cùng, cái này là gì

Ràng buộc rõ ràng này

Cách tiếp cận hướng đối tượng

Điều này có liên quan gì đến điều này?into an object that has everything it needs to generate what you as the developer need.

Cuối cùng, cái này là gì

Ràng buộc rõ ràng này

Hàm mũi tên

Điều này có liên quan gì đến điều này?

Cuối cùng, cái này là gì

Ràng buộc rõ ràng nàytruly object-oriented.

Lý do duy nhất mà các phương pháp

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
80 hoặc
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
81 thậm chí sẽ hoạt động trong ví dụ trên là vì đóng cửa. Họ vẫn có quyền truy cập vào
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
85 sau khi
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
82 trả lại vì đóng cửa. Để biết thêm thông tin về việc đóng cửa, hãy xem bạn không biết JS: Phạm vi & Đóng.

Điều gì sẽ xảy ra nếu bạn có một phương pháp khác, hãy để Lôi gọi nó là

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
87. Lưu ý rằng một phương thức [liên quan đến một đối tượng trong JavaScript] chỉ là một thuộc tính có giá trị là một hàm. Chúng tôi muốn
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
87 làm điều gì đó như thế này:
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
8

Công việc vừa ý?

No!

Tất cả mọi thứ trong đối tượng mới được tạo của chúng tôi đều có quyền truy cập vào tất cả các biến trong

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
82 nhưng không phải bất kỳ thuộc tính hoặc phương thức nào trong chính đối tượng. Chắc chắn, bạn sẽ đặt câu hỏi:
Bạn có thể sử dụng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
00 và
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
01 để trả lại lời chào không?

Vâng, bạn hoàn toàn có thể. Nhưng điều gì sẽ xảy ra nếu chúng ta cũng muốn đưa vào lời chào bao nhiêu ngày cho đến sinh nhật người bạn đó? Chúng tôi sẽ phải tìm cách gọi

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
81 từ trong vòng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
87.

Nó thời gian cho

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3!Ảnh của Sydney Rae trên unplash

Cuối cùng, cái này là gì

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 có thể đề cập đến những điều khác nhau trong các trường hợp khác nhau. Theo mặc định,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến đối tượng toàn cầu [trong trình duyệt, đây là đối tượng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
07], đó là tất cả những gì hữu ích. Quy tắc
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 hữu ích cho chúng tôi ngay bây giờ là như sau:

Nếu

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
93 được sử dụng trong một phương thức đối tượng và phương thức được gọi trong bối cảnh của đối tượng đó,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến chính đối tượng.3 được sử dụng trong một phương thức đối tượng và phương thức được gọi trong bối cảnh của đối tượng đó,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến chính đối tượng.

Bạn nói được gọi là trong bối cảnh của đối tượng đó, điều đó thậm chí có nghĩa là gì?

Đừng lo lắng, chúng tôi sẽ nhận được điều đó sau!

Vì vậy, nếu chúng tôi muốn gọi

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
81 từ trong vòng ____37, chúng tôi chỉ có thể gọi
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
23 vì
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 trong kịch bản đó chỉ đề cập đến chính đối tượng.

Lưu ý bên lề: Don Tiết sử dụng

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 trong hàm OLE thông thường trong phạm vi toàn cầu hoặc trong phạm vi của một hàm khác!
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 là một cấu trúc hướng đối tượng. Do đó, nó chỉ có ý nghĩa trong bối cảnh của một đối tượng [hoặc lớp]!

Hãy để Let Refactor

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
82 để sử dụng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3:
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
0

Bây giờ, tất cả mọi thứ mà đối tượng này cần đều được đưa vào chính đối tượng một khi

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
29 được thực thi. Phương pháp của chúng tôi không còn dựa vào việc đóng cửa. Họ chỉ sử dụng thông tin có trong chính đối tượng.
OK, vì vậy đó là một cách để sử dụng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3, nhưng bạn nói rằng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 có thể là nhiều thứ khác nhau tùy thuộc vào bối cảnh. Điều đó nghĩa là gì? Tại sao nó luôn luôn đề cập đến chính đối tượng?

Có một số lần bạn muốn buộc

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 là một cái gì đó đặc biệt. Một ví dụ tốt là cho người xử lý sự kiện. Hãy nói rằng chúng tôi muốn mở một trang Facebook của bạn bè khi người dùng nhấp vào họ. Chúng tôi có thể thêm một phương thức
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
33 vào đối tượng của chúng tôi:
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
2

Lưu ý rằng chúng tôi đã thêm

function initializeFriend[data] {
  return {
    fullName: `${data.firstName} ${data.lastName}`,
    getThreeRandomPosts: function[] {
      // get three random posts from data.lastTenPosts
    },
    getDaysUntilBirthday: function[] {
      // use data.birthday to get the num days until birthday
    }
  };
}
const objectFriends = data.map[initializeFriend]
objectFriends[0].getThreeRandomPosts[] 
// Gets three of Bob Ross's posts
3 vào đối tượng của mình, để
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
35 có quyền truy cập vào nó, để chúng tôi có thể mở một cửa sổ mới với trang Facebook của người bạn đó. Bây giờ chúng ta chỉ cần viết HTML:
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3

Và bây giờ JavaScript:

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
8

Trong mã trên, chúng tôi tạo một đối tượng cho Bob Ross. Chúng tôi nhận được phần tử DOM được liên kết với Bob Ross. Và bây giờ chúng tôi muốn thực hiện phương thức

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
35 để mở trang Facebook của Bob. Nên làm việc như mong đợi, phải không?

Nope!

Có chuyện gì?

Lưu ý rằng chức năng chúng tôi đã chọn cho trình xử lý title là

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
37. Xem vấn đề chưa? Điều gì sẽ xảy ra nếu chúng ta viết lại nó như thế này:
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
1

Bây giờ bạn có thấy vấn đề không? Khi chúng tôi đặt trình xử lý title là

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
37 Những gì chúng tôi thực sự đang làm là lấy chức năng được lưu trữ trong
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
37 và chuyển nó thành một đối số. Nó không còn được đính kèm trên mạng với
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
80, điều đó có nghĩa là
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 không còn đề cập đến
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
80. Nó thực sự đề cập đến đối tượng toàn cầu, có nghĩa là
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
83 không được xác định. Có vẻ như chúng ta không gặp may tại thời điểm này.

Nó thời gian cho

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3!Ảnh của Sydney Rae trên unplash

Cuối cùng, cái này là gì

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 có thể đề cập đến những điều khác nhau trong các trường hợp khác nhau. Theo mặc định,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến đối tượng toàn cầu [trong trình duyệt, đây là đối tượng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
07], đó là tất cả những gì hữu ích. Quy tắc
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 hữu ích cho chúng tôi ngay bây giờ là như sau:

Nếu

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
93 được sử dụng trong một phương thức đối tượng và phương thức được gọi trong bối cảnh của đối tượng đó,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến chính đối tượng.

Bạn nói được gọi là trong bối cảnh của đối tượng đó, điều đó thậm chí có nghĩa là gì?

Đừng lo lắng, chúng tôi sẽ nhận được điều đó sau!

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 là hữu ích và tại sao bạn có thể muốn ràng buộc rõ ràng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3. Chủ đề cuối cùng chúng tôi sẽ đề cập đến
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 là các hàm mũi tên.

Hàm mũi tên

Bạn có thể nhận thấy rằng các chức năng mũi tên là điều mới. Mọi người dường như thích họ vì họ súc tích và thanh lịch. Bạn có thể biết rằng chúng hơi khác so với các chức năng bình thường nhưng có lẽ bạn không biết sự khác biệt là gì.

Có lẽ cách đơn giản nhất để mô tả cách các chức năng mũi tên khác nhau là:

Bất cứ điều gì

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
93 đề cập đến nơi một hàm mũi tên được khai báo,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến cùng một điều bên trong hàm mũi tên đó.3 đề cập đến nơi một hàm mũi tên được khai báo,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến cùng một điều bên trong hàm mũi tên đó.

OK, điều đó không hữu ích, tôi nghĩ đó là hành vi của một chức năng bình thường?

Hãy để giải thích với ví dụ

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
82 của chúng tôi. Hãy nói rằng chúng tôi muốn thêm một chức năng trợ giúp nhỏ trong
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
87:
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
0

Điều này sẽ hoạt động? Nếu không, làm thế nào chúng ta có thể thay đổi nó để làm cho nó hoạt động?

Không, nó sẽ không hoạt động. Bởi vì

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
20 không được gọi trong bối cảnh của một đối tượng,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 bên trong
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
20 rơi trở lại quy tắc mặc định là đối tượng toàn cầu.
Bạn nói rằng nó không được gọi là trong bối cảnh của một đối tượng. Nếu đó không phải là người được gọi là trong bối cảnh của một đối tượng thì tôi không biết là gì.

Tôi biết rằng, trong bối cảnh của một đối tượng, là thuật ngữ mơ hồ. Có lẽ một cách tốt để xác định xem một hàm được gọi là trong bối cảnh của một đối tượng hay không là tự nói với mình thông qua cách gọi chức năng và xác định xem một đối tượng có gắn liền với chức năng hay không.

Hãy để nói chuyện thông qua những gì xảy ra khi chúng ta thực hiện

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
24. Hãy lấy cho tôi đối tượng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
80, hãy tìm thuộc tính
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
35 và gọi hàm được gán cho thuộc tính đó.call the function assigned to that attribute.”call the function assigned to that attribute.”

Bây giờ, hãy để nói chuyện thông qua những gì xảy ra khi chúng ta thực hiện

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
27. Hãy lấy cho tôi chức năng với tên
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
20 và gọi nó là. Lưu ý làm thế nào không có đề cập đến một đối tượng?

OK, ở đây, một điều khó khăn để kiểm tra kiến ​​thức của bạn. Hãy nói rằng có một chức năng

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
29 trong đó tất cả những gì nó làm là các chức năng gọi:
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
1

Điều gì sẽ xảy ra nếu chúng ta đã làm điều này:

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
00? Bạn có nói rằng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
35 được gọi là trong bối cảnh của một đối tượng không?
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
83 sẽ được xác định?

Hãy nói chuyện với nhau thông qua nó: Hãy lấy đối tượng

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
80 và tìm kiếm thuộc tính
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
35. Lấy giá trị của nó [tình cờ là một hàm], chuyển nó vào
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
29 và đặt tên cho nó
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
06. Bây giờ, thực thi chức năng có tên
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
06. Lưu ý rằng chức năng được tách ra khỏi
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
80 trước khi nó được gọi và do đó không được gọi là trong bối cảnh của đối tượng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
80, điều đó có nghĩa là
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
83 sẽ không được xác định.

Các chức năng của mũi tên để giải cứu:

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
2

Quy tắc của chúng tôi từ trên:

Bất cứ điều gì

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
93 đề cập đến nơi một hàm mũi tên được khai báo,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến cùng một điều bên trong hàm mũi tên đó.3 đề cập đến nơi một hàm mũi tên được khai báo,
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
3 đề cập đến cùng một điều bên trong hàm mũi tên đó.

OK, điều đó không hữu ích, tôi nghĩ đó là hành vi của một chức năng bình thường?

Hãy để giải thích với ví dụ

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
82 của chúng tôi. Hãy nói rằng chúng tôi muốn thêm một chức năng trợ giúp nhỏ trong
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
87:
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
0

Điều này sẽ hoạt động? Nếu không, làm thế nào chúng ta có thể thay đổi nó để làm cho nó hoạt động?
  • Không, nó sẽ không hoạt động. Bởi vì
  • const fullNames = getFullNames[data]
    // ['Ross, Bob', 'Smith, Joanna', ...]
    20 không được gọi trong bối cảnh của một đối tượng,
    const fullNames = getFullNames[data]
    // ['Ross, Bob', 'Smith, Joanna', ...]
    3 bên trong
    const fullNames = getFullNames[data]
    // ['Ross, Bob', 'Smith, Joanna', ...]
    20 rơi trở lại quy tắc mặc định là đối tượng toàn cầu.
  • Bạn nói rằng nó không được gọi là trong bối cảnh của một đối tượng. Nếu đó không phải là người được gọi là trong bối cảnh của một đối tượng thì tôi không biết là gì.

Tôi biết rằng, trong bối cảnh của một đối tượng, là thuật ngữ mơ hồ. Có lẽ một cách tốt để xác định xem một hàm được gọi là trong bối cảnh của một đối tượng hay không là tự nói với mình thông qua cách gọi chức năng và xác định xem một đối tượng có gắn liền với chức năng hay không.

Hãy để nói chuyện thông qua những gì xảy ra khi chúng ta thực hiện

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
24. Hãy lấy cho tôi đối tượng
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
80, hãy tìm thuộc tính
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
35 và gọi hàm được gán cho thuộc tính đó.call the function assigned to that attribute.”

Bây giờ, hãy để nói chuyện thông qua những gì xảy ra khi chúng ta thực hiện

const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
27. Hãy lấy cho tôi chức năng với tên
const fullNames = getFullNames[data]
// ['Ross, Bob', 'Smith, Joanna', ...]
20 và gọi nó là. Lưu ý làm thế nào không có đề cập đến một đối tượng?

Bài Viết Liên Quan

Chủ Đề