87,910
社区成员
发帖
与我相关
我的任务
分享
(function(){
var Effects = window.Effects = function(){
var transTotal = 10;
this.transition = function (maskID, maskTime){
if (maskID <= transTotal) {
var maskFunName = "mask" + maskID;
eval(maskFunName)(maskTime);
//请问这里除了用eval方法来根据函数字符串名调用函数外,
//还有没有其它方法,下面这种写法不行又是错在哪里。
//this[maskFunName].apply(this, maskTime);
} else {
mask1(maskTime);
}
}
function mask1(maskTime) {
alert("mask1: " + maskTime);
}
function mask2(maskTime) {
alert("mask2: " + maskTime);
}
function mask3(maskTime) {
alert("mask3: " + maskTime);
}
};
})();
var masker = new Effects();
masker.transition(3, 2);
masker.transition(30, 8);
var Foresee = {
create: function(){return function() {this.init.apply(this,
arguments);};},
get: function(objId){return document.getElementById(objId);}
};
Foresee.Base = function() {};
Foresee.Base.prototype = {
funName:function() {
alert("你好");
},
callByName:function(_funName) {
this[_funName]();
}
};
var base = new Foresee.Base();
base.funName();
base.callByName("funName");
function funName() {
alert("你好");
}
(new Function("funName()"))()