在Javascript中,确定本机函数检查函数是否为本机代码。

在Javascript中,确定本机函数检查函数是否为本机代码。
我总是遇到检查一个函数是否是本机代码的情况。这是功能测试的一个重要内容:函数是否是由浏览器或是由第三方类库模拟检测到这种最简单的方法是,当然,判断价值的ToString方法,函数返回。

Javascript代码

判断一个函数是否是本机方法是相当简单的。
要确定主函数是否
功能是本地的(FN){
例:
( / /警报。toString)
函数(警报),本地代码}
使用+/C的隐式类型转换
返回(本地代码);
}
实现的原则是将函数转换为字符串表示形式,并执行正则匹配。

升级版本,更新!
(函数(){())

ToString / /对象的方法,用于内部处理传入的参数值(内部)` { {类} } `
VaR方法= object.prototype.tostring;

ToString /功能的原始方法,用于反编译功能代码的处理
无功fntostring = function.prototype.tostring;

用于检测宿主对象构造函数(宿主构造函数),
(Safari > 4;真正的输出特定数组,真正键入特定数组)
无功rehostctor = / ^ {对象。+构造函数 } $ /;

对正则表达式/本地方法将被编译成一个固定模板的使用。
/ /使用`对象# toString `因为他不会被污染
var = regexp(renative + ^
`对象# toString `会变成一串强/
字符串(字符串)
与所有正则表达式相关的特殊字符
更换( / {。* + ^美元(| { } { } / } / g), $')
为了保持通用 / /模板,更换` toString ` `。* `
…字符替换、兼容犀牛环境,因为它们会有附加信息、参数数等方法。
更换( / toString |(功能)*(为)= (| 1(= })/ g,1美元。)
结束
+ $
);

功能是本地的(值){
类型/判断
变量类型=类型的值;
返回类型= = 'function
使用`功能# toString `方法调用本地 / /,
价值` toString ` / /而不是他的方法,
以避免被虚假的。
renative.test(fntostring.call(值))
/ /如果类型是not'function,
您需要检查主机对象(主机对象)),
由于某些(浏览器)环境将数组事物作为DOM方法输入
此时本机正常模式可能与标准不匹配。
(价值:类型= 'object' rehostctor.test(tostring.call(值))假| |);
};

/ /原产可以分配到你想要的变量/对象
window.isnative =原产;
}();
测试代码:
原产(原产) / /假
原产(警戒) / /真的
window.isnative(窗口。原产) / /假
window.isnative(窗口。警报) / /真的
window.isnative(string ToString) / /真的
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部