为了账号安全,请及时绑定邮箱和手机立即绑定

想参照老师的代码打一下,看看arugments,结果提示SyntaxError: Unexpected token this,跪求解决

function foo(){
  this.b=100;
  retrun this.a;
}
var func=foo.binddd({a:1});
Function.prototype.binddd=function(oThis){
  var aArgs=Array.prototype.slice.call(arguments,1);
  fToBind=this;
  fNOP=function(){};
  Bound=function(){
    return fToBind.apply(this instanceof fNOP?this:oThis,aArgs.concat(Array.prototype.slice.call(arguments)));
  }
  fNOP.prototype=this.prototype;
  fBound.prototype=new fNOP();
  return fBound;
};
func();
new func();


正在回答

1 回答

function foo(){
  this.b=100;
  return this.a;
  //retrun打错了
}
var func=foo.bind({a:1});
//binddd打错了
Function.prototype.bind=function(oThis){
  //binddd打错了
  var aArgs=Array.prototype.slice.call(arguments,1);
  fToBind=this;
  fNOP=function(){};
  Bound=function(){
    return fToBind.apply(this instanceof fNOP?this:oThis,aArgs.concat(Array.prototype.slice.call(arguments)));
  }
  fNOP.prototype=this.prototype;
  fBound.prototype=new fNOP();
  return fBound;
};
console.log(func());//->1
console.log(new func())//->[object Object] {b: 100}(bind失效,忽略return,直接返回this{b=100}的对象)


1 回复 有任何疑惑可以回复我~
#1

风魔大王 提问者

一直把注意力放在this了,没想到是打错了,还想着用着兼容好的浏览器想乱输个binddd试试的,经测试不行,按您说的改就成功了,万分感谢!
2016-11-30 回复 有任何疑惑可以回复我~
#2

风魔大王 提问者

非常感谢!
2016-12-01 回复 有任何疑惑可以回复我~
#3

慕移动4113297 回复 风魔大王 提问者

我去,好的浏览器使用了兼容binddd的吗?那是不是可以写functionnn,thisss,forrr,ifff了!
2018-10-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

想参照老师的代码打一下,看看arugments,结果提示SyntaxError: Unexpected token this,跪求解决

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信