JS函数中调用自身方法的问题
本帖最后由 cqwcns 于 2021-12-27 17:52 编辑JS,我有个函数,函数中定义了一些方法,我希望在执行函数时,通过e的传参中的type,执行对应方法,应该怎么写?求指教,谢谢。
touch: (source, e) => {
// Touch触摸开始
const touchstart = (source, e) => {
source.setData({
touchStart: e.touches.pageX
})
console.log(e.type)
};
// Touch计算方向
const touchmove = (source, e) => {
source.setData({
touchDirection: e.touches.pageX - source.data.touchStart > 0 ? 'right' : 'left'
})
console.log(e.type)
};
// Touch计算滚动
const touchend = (source, e) => {
const data = { touchDirection: null, activeMore: null };
if (source.data.ListTouchDirection == 'left') data.activeMore = e.currentTarget.dataset.target;
source.setData(data);
console.log(e.type)
};
this(source, e);
console.log(this);
// this undefined
} 你好
用e中type传function
然后在要执行的地方使用new e.type()即可 finillusion 发表于 2021-12-27 17:51
你好
用e中type传function
然后在要执行的地方使用new e.type()即可
e.type传过来只是字符串,例如“touchstart”、"touchmove"。 cqwcns 发表于 2021-12-27 17:53
e.type传过来只是字符串,例如“touchstart”、"touchmove"。
如果字符串是函数名的话
可以用
eval('new '+e.type+'()')
这样试试 var name = "xxxx";
var res = obj();
obj是某个类实例,name是方法名称 有参数自己在()填参数 加个switch就可以了 1. eval() 可以解析字符串为变量或方法运行, 使用不正确的话,存在安全问题
2. 自定义一个映射表, type:function(), 这样的 采用了switch的方法,谢谢各位。
页:
[1]