<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
console.log(Object.getOwnPropertyDescriptor(Function,'property'))
function f1(){}
Object.defineProperty(Function.prototype,'call',{
value:f1,
writbale:true,
enumerable:false,
configurable:true
})
console.log(Object.getOwnPropertyDescriptor(Function.prototype,'call'))
</script>
把value换成数字或者别的不是函数的对象 就报错 也不时的刷屏 幅度较小
livereload.js?snipver=1:637 Uncaught TypeError: __indexOf.call is not a function
换成f1就不挺的刷屏 幅度很大 连复制粘贴都不能做 没报错 输出
01.html:11 {writable: true, enumerable: false, configurable: true, value: ƒ}
01.html:22 {writable: true, enumerable: false, configurable: true, value: ƒ}
livereload.js?snipver=1:351 LiveReload protocol error (no supported protocols found) after receiving data: "undefined"..
如果把call改成别的就不会出错
在nodejs里 是正常的
我这里试着没有什么问题。
代码:
<script type="text/javascript">
function f1() {}
Object.defineProperty(Function.prototype, 'call', {
value: f1,
writbale: true,
enumerable: false,
configurable: true
})
console.log([Function]); // 打印这个
console.log(Object.getOwnPropertyDescriptor(Function.prototype, 'call'))
</script>
运行效果:
有影响的话估计是因为改了默认的call方法,造成其他地方调用call报了错误。
但是看你上下文好像也没有其他的代码,有点奇怪。
Object.defineProperty(Function.prototype, 'bind', {
value: f1,
writbale: true,
enumerable: false,
configurable: true
})
没问题 其他的几个方法都可以重写 好像就这个call比较特殊出现刷屏
你是用什么编辑器呢?有些编辑器用自带服务运行文件会在文件后面增加脚本,估计是这个脚本造成的。