Function: displayName
Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.
Thuộc tính tùy chọn displayName của một instance Function xác định tên hiển thị của hàm.
Value
Thuộc tính displayName ban đầu không có trên bất kỳ hàm nào — nó được thêm vào bởi các tác giả code. Để hiển thị, nó nên là một chuỗi.
Description
Thuộc tính displayName, nếu có, có thể được console và profiler ưu tiên hơn thuộc tính name để hiển thị tên của hàm.
Trong số các trình duyệt, chỉ có console của Firefox sử dụng thuộc tính này. React devtools cũng sử dụng thuộc tính displayName khi hiển thị cây component.
Firefox thực hiện một số thao tác giải mã cơ bản đối với displayName có thể được tạo ra bởi thuật toán anonymous JavaScript functions naming convention. Các mẫu sau được phát hiện:
- Nếu
displayNamekết thúc bằng một chuỗi ký tự chữ-số,_, và$, hậu tố dài nhất như vậy sẽ được hiển thị. - Nếu
displayNamekết thúc bằng một chuỗi ký tự được bao trong[], chuỗi đó được hiển thị mà không có dấu ngoặc vuông. - Nếu
displayNamekết thúc bằng một chuỗi ký tự chữ-số và_theo sau là một số/,., hoặc<, chuỗi được trả về mà không có các ký tự cuối/,., hoặc<. - Nếu
displayNamekết thúc bằng một chuỗi ký tự chữ-số và_theo sau là(^), chuỗi được hiển thị mà không có(^).
Nếu không có mẫu nào ở trên khớp, toàn bộ displayName sẽ được hiển thị.
Examples
>Đặt displayName
Bằng cách nhập nội dung sau vào console Firefox, nó sẽ hiển thị dạng function MyFunction():
function a() {}
a.displayName = "MyFunction";
a; // function MyFunction()
Thay đổi displayName động
Bạn có thể thay đổi displayName của một hàm một cách động:
const object = {
// anonymous
someMethod: function someMethod(value) {
someMethod.displayName = `someMethod (${value})`;
},
};
console.log(object.someMethod.displayName); // undefined
object.someMethod("123");
console.log(object.someMethod.displayName); // "someMethod (123)"
Làm sạch displayName
Firefox devtools sẽ làm sạch một số mẫu phổ biến trong thuộc tính displayName trước khi hiển thị.
function foo() {}
function testName(name) {
foo.displayName = name;
console.log(foo);
}
testName("$foo$"); // function $foo$()
testName("foo bar"); // function bar()
testName("Foo.prototype.add"); // function add()
testName("foo ."); // function foo .()
testName("foo <"); // function foo <()
testName("foo?"); // function foo?()
testName("foo()"); // function foo()()
testName("[...]"); // function ...()
testName("foo<"); // function foo()
testName("foo..."); // function foo()
testName("foo(^)"); // function foo()
Specifications
Không phải là một phần của bất kỳ tiêu chuẩn nào.