实用javascript prototype详解精编
【导读预览】此篇优秀范文“实用javascript prototype详解精编”由阿拉题库网友为您整理分享,以供您参考学习之用,希望此篇资料对您有所帮助,喜欢就复制下载支持吧!
javascript prototype详解篇1
以前,你可能会直接设置self=this或者that=this等等,这样做当然也能起作用,()会更好,看上去也更专业。
下面举个简单的例子:
复制代码 代码如下:
var myobj = {
specialfunction: function () {
},
anotherspecialfunction: function () {
},
getasyncdata: function (cb) {
cb();
},
render: function () {
var that = this;
ncdata(function () {
lfunction();
rspecialfunction();
});
}
};
();
在这个例子中,为了保持myobj上下文,设置了一个变量that=this,这样是可行的,()看着更整洁:
复制代码 代码如下:
render: function () {
ncdata(function () {
lfunction();
rspecialfunction();
}.bind(this));
}
()时,它会简单的创建一个新的函数,然后把this传给这个函数。()的代码大概是这样的:
复制代码 代码如下: = function (scope) {
var fn = this;
return function () {
return (scope);
};
}
()的.例子:
复制代码 代码如下:
var foo = {
x: 3
};
var bar = function(){
();
};
bar(); // undefined
var boundfunc = (foo);
boundfunc(); // 3
是不是很好用呢!不过遗憾的是ie8及以下的ie浏览器并不支持()。支持的浏览器有chrome 7+,firefox +,ie 9+,opera +,safari +。虽然ie 8/7/6等浏览器不支持,但是mozilla开发组为老版本的ie浏览器写了一个功能类似的函数,代码如下:
复制代码 代码如下:
if (!) {
= function (othis) {
if (typeof this !== "function") {
// closest thing possible to the ecmascript 5 internal iscallable function
throw new typeerror(" - what is trying to be bound is not callable");
}
var aargs = (arguments, 1),
ftobind = this,
fnop = function () {},
fbound = function () {
return (this instanceof fnop && othis
? this
: othis,
((arguments)));
};
ype = ype;
ype = new fnop();
return fbound;
};
}
s("content_relate");()方法介绍相关文章:
1.
javascript中的dom方法
2.javascript tofixed方法介绍
3.获取javascript中的方法
4.关于javascript中的包装对象介绍
5.javascript数组常用方法介绍
6.详解javascript中的splice()使用方法
7.关于异步javascript编程中的promise使用方法
8.javascript应用到网页中的方法