Function.prototype.call和Function.prototype.apply只有一个参数

时间:2016-05-04 21:42:04

标签: javascript

Function.prototype.call或Function.prototype.apply只用一个参数做什么?

这里发生了什么?

Function.prototype.myBind = function (context) {
  var fun = this;
  return function(){
    return fun.call(context);
  }
}

2 个答案:

答案 0 :(得分:4)

它调用函数而不传递任何参数。

答案 1 :(得分:2)

fun

context中的函数将使用context.temp = fun; context.temp(); 的上下文*调用,并且不传递任何参数。

这基本上等同于调用:

call

当然使用var a = {foo: 'bar'}, b = {foo: 'baz'}; function example() { console.log(this.foo); } console.log('example called on a'); example.call(a); //'bar' console.log('example called on b'); example.call(b); //'baz'不会添加其他属性。

以下是一个例子:



this




函数

中的

* if (!xe.RefName.IsEmpty) { XmlSchemaElement e = (XmlSchemaElement)elements[xe.RefName]; if (e == null) { throw new XmlSchemaException(Res.Sch_UndeclaredElement, xe.RefName.ToString(), xe); } CompileElement(e); if (e.ElementDecl == null) { throw new XmlSchemaException(Res.Sch_RefInvalidElement, xe.RefName.ToString(), xe); } xe.SetElementType(e.ElementSchemaType); decl = e.ElementDecl.Clone(); } else { ...