https://juejin.cn/post/7139452175088320520
文中提到sentry使用fetch的时候会判断是否被覆盖。
其实现为:

function isNativeFetch(func) {
    return func && /^function fetch\(\)\s+\{\s+\[native code\]\s+\}$/.test(func.toString());
}

那么,如果把fetch放大到更多原生方法呢?

function isNativeMethod(func){
    if(!func){
        return false
    }
    const reg = new RegExp(`^function\\s${func.name}\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$`);
    return reg.test(func.toString())
}

Dont
7k 声望144 粉丝

学如逆水行舟不进则退