顶一下,明天看
个人不喜欢用JS写OO,对于这方面的几乎一窍不通,学习一下了要……
个人不喜欢用JS写OO,对于这方面的几乎一窍不通,学习一下了要……
解决方案 »
- 在一个输入框中同时验证邮箱和QQ号的js (就是这个输入框可以输入邮箱或QQ号)
- 请高手看看我这段代码错在哪里?
- 关于 removeClass ,这两种方式,有哪个好些 ?
- jquery 中符号??
- 求一段Javascript函数,实现Frame的跳转
- extjs自带的form的验证,可以自定义验证的函数吗?
- 什么是脚本语言?
- 招聘Web开发工程师(成都) ASP.NET C# DHTML JavaScript
- 请问怎么可以屏蔽IE的网页存图功能?
- 保留小数位数后两位,如何写代码呢?如:var tt=2.23423423423423 我只想要2.23如何实现。
- 请问各位这样的结构好不好
- parent.onload没反映
Function.prototype.bind = function(object) {
var method = this
return function() {
return method.apply(object, arguments);
}
}function oo(){
this.s = "s1";
var f1 = function(s){ alert(this.s + s); };
f1.bind(this)("s2");
var f2 = function(s){ alert(this.s + s); }.bind(this);
f2("s2");
var f3 = function(s){ alert(this.s + s); }.bind(this);
f3("s2");
var f4 = function(s1, s2){ alert(this.s + s1 + s2); }.bind(this);
f4("s2", "s3");
}new oo()总结, 个人觉得我的这种用法更简单, 直观
Function.prototype.bind = function(object) {
var __method = this, args = Array.prototype.slice.call(arguments); args.shift();
return function() {
return __method.apply(object, args.concat(Array.prototype.slice.call(arguments)));
}
}
这一段代码没完全搞明白,LZ能帮忙解说下么,谢谢了
你的是简化了的bind
如果不需要bind的时候直接插参数可以用那个
function oo(){
this.s = "s1";
var f1 = function(s){ alert(this.s + s); };
f1.bind(this, "s2")();
var f2 = function(s){ alert(this.s + s); }.bind(this, "s2");
f2();
var f3 = function(s){ alert(this.s + s); }.bind(this);
f3("s2");
var f4 = function(s1, s2){ alert(this.s + s1 + s2); }.bind(this, "s2");
f4("s3");
}new oo();
貌似木有必要這樣封裝一下吧?
例如
function oo(){
this.a = "aa";
this.t = setTimeout(function(){ alert(this.a) }.bind(this), 500);
};new oo();
是啊
以前很少用毕竟会修改function
不过近来发现原来是很有用的
这个确实有用哦, 一般用于callback, 避免了callbackObject, callbackFunction的形式, 只要一个bind就搞定, 强。另外一个用处是作为事件的处理函数,
Function.prototype.bindAsEventLisener = function(object)
{
var method = this;
return function(event) {
method.call(object, event || window.event);
}
}