<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
Function.prototype.mycall = function(obj){
var content = obj || window;
console.log(content,arguments[0],'我是content')
console.log(arguments,'我是arguments')
content.fn = this;
let str = '';
for(let i =1,len=arguments.length;i<len;i++){
if(i==len-1){
str = str +arguments[i];
break
}
str = str +arguments[i]+',';
}
let fun = new Function('content','return content.fn('+str+')');
let resulut = fun(content);
delete content.fn;
return resulut;
}
function f1(a,b){
console.log(a,b);
console.log(this,'f1里的this')
console.log(this ==obj)
return 3;
}
let obj = {0:'name',1:'age',2:15,length:3};
let cc = f1.mycall.mycall.mycall(f1);
console.log(cc)
</script>
执行字符串的代码有new Function还有eval eval比较耗性能