Tôi có một chức năng đăng nhập đơn giản:Tại sao các hàm có thể được gọi mà không có dấu ngoặc đơn khi sử dụng chuỗi mẫu?
function log(str) {
console.log('logged: ', str);
}
Nếu tôi gọi nó mà không có dấu ngoặc đơn (hiện đang sử dụng các công cụ dev của Chrome) và vượt qua trong một mẫu chuỗi, như thế này:
log`foo`
Đầu ra là: logged: ["foo", raw: Array[1]]
Nếu tôi gọi nó với dấu ngoặc đơn,
log(`foo`)
Đầu ra là: logged: foo
Tại sao gọi một hàm bằng chuỗi mẫu không có dấu ngoặc đơn hoạt động trong Javascript? Điều gì đang xảy ra khiến cho kết quả khác với việc gọi nó bằng dấu ngoặc đơn?
Đáng giá thêm liên kết, vì tôi chưa từng nghe về điều này trước đây: https://developers.google.com/web/updates/2015/01/ES6-Template-Strings#tagged-templates – Mathletics