toString
2024年03月12日
一、认识
Function.prototype.toString()
返回一个表示该函数源码的字符串。
二、语法
Function.toString()
三、返回值
一个表示函数源代码的字符串。
-
内置函数: 如果在内置函数对象上调用
toString()
方法,或者在由Function.prototype.bind()
创建的函数以及在其他非JavaScript
函数上调用toString()
,那么toString()
将返回一个看起来像原函数的字符串function someName() { [native code] }
-
自定义函数: 由
Function
构造函数生成的函数上调用toString()
,则toString()
返回创建后的函数源码,包括形参和函数体
四、应用场景
4.1 获取函数原文本
方式一、模版字符串
function foo() {
return "bar";
}
console.log(`${foo}`);
// function foo() {
// return "bar";
// }
方式二、Function.toString()
function foo /* a comment */() {
return "bar";
}
console.log(foo.toString());
// function foo /* a comment */() {
// return "bar";
// }
4.2 检测是否为内置函数
function isNative(Ctor){
return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
}
isNative(Promise);
isNative(MutationObserver);