问题描述
- 俄罗斯方块关于apply函数的问题
-
Freewind.Base.apply(this, arguments);这个apply在BASE里面没有定义啊,还有
这个this是不是就是指apply,还有最开始有个this._isIE = document.all ? true : false;写这个有什么意义?
求解答
解决方案
apply是js自带的
pply方法:
语法:apply([thisObj[,argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
解决方案二:
document.all[]不符合WEB标准,只有ie上有,所以能判断是不是ie浏览器
解决方案三:
apply和call是每个方法都默认有的方法。。用于更改这个方法内this的指向。
http://www.cnblogs.com/fighting_cp/archive/2010/09/20/1831844.html
this不是指向apply,指向调用Freewind.Base这个方法的对象
this._isIE = document.all ? true : false;这个主要要来判断是否IE10-一下的IE,IE11不再支持这个对象,要使用下面的代码来判断
function isIE() { //ie?
if (!!window.ActiveXObject || "ActiveXObject" in window)
return true;
else
return false;
}
时间: 2024-12-22 19:48:25