数码资讯
到prototype.bind导论()方法在Javascript
之前,你可以直接设置自我= =这这个或那个,等等,当然,它也可以发挥作用,但使用Function.prototype.bind()将更好更专业。 下面是一个简单的例子: 复制代码代码如下所示: VaR myobj时= { { 特殊功能:功能(){ }, anotherspecialfunction:
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
之前,你可以直接设置自我= =这这个或那个,等等,当然,它也可以发挥作用,但使用Function.prototype.bind()将更好更专业。
下面是一个简单的例子:
复制代码代码如下所示:
VaR myobj时= { {
特殊功能:功能(){
},
anotherspecialfunction:函数(){
},
getasyncdata:功能(CB){
(CB);
},
渲染:函数(){
var =;
this.getasyncdata(函数(){()
that.specialfunction();
that.anotherspecialfunction();
});
}
};
MyObj.render();
在这种情况下,为了保持myobj时的背景下,建立一个变量,这是可行的,但不使用Function.prototype.bind()看到它更整齐。
复制代码代码如下所示:
渲染:函数(){
this.getasyncdata(函数(){()
this.specialfunction();
this.anotherspecialfunction();
}绑定(这个);
}
当调用Bind()时,它只是创建一个新函数,然后将这个函数传递给函数。实现的代码。Bind()可能是相同的:
复制代码如下:function.prototype.bind =功能(范围){
这个=;
返回函数(){
返回fn.apply(范围);
};
}
这是一个简单的使用实例(Function.prototype.bind)。
复制代码代码如下所示:
var { { { {
X:3
};
函数(){()
(这console.log。x);
};
(bar);未定义的
无功boundfunc = bar.bind(Foo);
BoundFunc(3); / /
使用它很好吗不幸的是,IE8及以下的IE浏览器不支持Function.prototype.bind(),支持的浏览器是Chrome 7 + 4 + 9 + Firefox,IE,Opera 11.60 +,和Safari 5.1.4 +。虽然IE 8 / 7 / 6和其他浏览器不支持它,Mozilla开发组写了一功能类似于老版本的IE浏览器。代码如下:
复制代码代码如下所示:
如果(!函数.原型.绑定){
function.prototype.bind =功能(o){
如果(typeof这!=函数){
事情可能 / /亲密的ECMAscript 5内部iscallable功能
抛出TypeError(function.prototype.bind -什么是想肯定不是));
}
无功aargs = array.prototype.slice.call(参数1),
这ftobind =,
浮点空操作=函数(){ },
fbound =函数(){
返回ftobind.apply(这是浮点空操作流)
这
OThis,
AArgs.concat(array.prototype.slice.call(参数)));
};
fnop.prototype = this.prototype;
fbound.prototype =新的浮点空操作();
返回fbound;
};
}
下面是一个简单的例子:
复制代码代码如下所示:
VaR myobj时= { {
特殊功能:功能(){
},
anotherspecialfunction:函数(){
},
getasyncdata:功能(CB){
(CB);
},
渲染:函数(){
var =;
this.getasyncdata(函数(){()
that.specialfunction();
that.anotherspecialfunction();
});
}
};
MyObj.render();
在这种情况下,为了保持myobj时的背景下,建立一个变量,这是可行的,但不使用Function.prototype.bind()看到它更整齐。
复制代码代码如下所示:
渲染:函数(){
this.getasyncdata(函数(){()
this.specialfunction();
this.anotherspecialfunction();
}绑定(这个);
}
当调用Bind()时,它只是创建一个新函数,然后将这个函数传递给函数。实现的代码。Bind()可能是相同的:
复制代码如下:function.prototype.bind =功能(范围){
这个=;
返回函数(){
返回fn.apply(范围);
};
}
这是一个简单的使用实例(Function.prototype.bind)。
复制代码代码如下所示:
var { { { {
X:3
};
函数(){()
(这console.log。x);
};
(bar);未定义的
无功boundfunc = bar.bind(Foo);
BoundFunc(3); / /
使用它很好吗不幸的是,IE8及以下的IE浏览器不支持Function.prototype.bind(),支持的浏览器是Chrome 7 + 4 + 9 + Firefox,IE,Opera 11.60 +,和Safari 5.1.4 +。虽然IE 8 / 7 / 6和其他浏览器不支持它,Mozilla开发组写了一功能类似于老版本的IE浏览器。代码如下:
复制代码代码如下所示:
如果(!函数.原型.绑定){
function.prototype.bind =功能(o){
如果(typeof这!=函数){
事情可能 / /亲密的ECMAscript 5内部iscallable功能
抛出TypeError(function.prototype.bind -什么是想肯定不是));
}
无功aargs = array.prototype.slice.call(参数1),
这ftobind =,
浮点空操作=函数(){ },
fbound =函数(){
返回ftobind.apply(这是浮点空操作流)
这
OThis,
AArgs.concat(array.prototype.slice.call(参数)));
};
fnop.prototype = this.prototype;
fbound.prototype =新的浮点空操作();
返回fbound;
};
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。