Function.displayName
éæ å: è¯¥ç¹æ§å°æªæ ååãæä»¬ä¸å»ºè®®å¨ç产ç¯å¢ä¸ä½¿ç¨éæ åç¹æ§ï¼å 为å®ä»¬å¨æµè§å¨ä¸çæ¯ææéï¼ä¸å¯è½åçååæè¢«ç§»é¤ãä¸è¿ï¼å¨æ²¡ææ åé项çç¹å®æ åµä¸ï¼å®ä»¬å¯ä»¥ä½ä¸ºåéçæ¿ä»£æ¹æ¡ã
Function å®ä¾ç displayName å¯é屿§æå®å½æ°çæ¾ç¤ºåç§°ã
å¼
displayName 屿§æåå¨ä»»ä½å½æ°ä¸é½ä¸åå¨ï¼å®æ¯ç±ä»£ç ä½è
æ·»å çãåºäºæ¾ç¤ºçç®çï¼å®åºè¯¥æ¯ä¸ä¸ªå符串ã
æè¿°
妿åå¨ displayName 屿§ï¼å
¶å¯è½ä¼è¢«æ§å¶å°åæ§è½åæå·¥å
·ä¼å
éæ©ï¼ä½ä¸ºå½æ°çåç§°æ¾ç¤ºã
å¨åç§æµè§å¨ä¸ï¼åªæ Firefox æ§å¶å°ä½¿ç¨è¯¥å±æ§ãReact å¼åè
å·¥å
·å¨æ¾ç¤ºç»ä»¶æ æ¶ä¹ä½¿ç¨ displayName 屿§ã
Firefox 对å¯è½ç±å¿å JavaScript 彿°å½å约å®ç®æ³çæç displayName è¿è¡äºä¸äºåºæ¬çè§£ç å°è¯ã以䏿¨¡å¼å¯ä»¥è¢«æ£æµå°ï¼
- 妿
displayName以ä¸ç³»å忝æ°åå符ã_å$ç»å°¾ï¼æé¿çè¿ç§åç¼å°è¢«æ¾ç¤ºã - 妿
displayName以ä¸ç³»å以[]å å´çå符ç»å°¾ï¼è¯¥åºåå°è¢«æ¾ç¤ºï¼ä½ä¸å æ¬æ¹æ¬å·ã - 妿
displayName以ä¸ç³»å忝æ°åå符å_ï¼åé¢è·çä¸äº/ã.æ<ç»å°¾ï¼å°è¿å该åºåï¼ä½ä¸å æ¬å°¾é¨ç/ã.æ<å符ã - 妿
displayName以ä¸ç³»å忝æ°åå符å_ï¼åé¢è·ç(^)ç»å°¾ï¼è¯¥åºåå°è¢«æ¾ç¤ºï¼ä½ä¸å æ¬(^)ã
妿以䏿¨¡å¼é½ä¸å¹é
ï¼åæ¾ç¤ºæ´ä¸ª displayNameã
示ä¾
>设置 displayName
éè¿å¨ Firefox æ§å¶å°ä¸è¾å
¥ä»¥ä¸å
容ï¼å®åºè¯¥æ¾ç¤ºä¸ºç±»ä¼¼ function MyFunction() çå
容ï¼
const a = function () {};
a.displayName = "MyFunction";
a; // function MyFunction()
å¨ææ´æ¹ displayName
ä½ å¯ä»¥å¨ææ´æ¹å½æ°ç displayNameï¼
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)"
æ¸ ç displayName
Firefox å¼åè
å·¥å
·ä¼å¨æ¾ç¤º displayName 屿§ä¹åæ¸
çä¸äºå¸¸è§ç模å¼ã
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()
è§è
ä¸å±äºä»»ä½è§èã