Function.prototype.call或Function.prototype.apply只用一个参数做什么?
这里发生了什么?
Function.prototype.myBind = function (context) {
var fun = this;
return function(){
return fun.call(context);
}
}
答案 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 { ...