跳到主要内容

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);