起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1940|回复: 3

[结贴] eval(string)使用

[复制链接]

26

主题

55

帖子

168

积分

初级会员

Rank: 2

积分
168
QQ
发表于 2015-4-10 10:56:57 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
我在bizData中对某一个字段进行约束。使用eval()方法。
表达式:js:eval('checkKHMC()')
js代码:
  1.
  function checkKHMC){
        alert(1111);
        return false;
   }
  2.
  define(function(require){
     Model.prototype.checkKHMC=function(){
                alert(22222);
                return false;
        };
     return Model;
}
问题:发现eval表达式只能调用checkKHMC,如果表达式改成:js:eval('Model.prototype.checkKHMC') ,则调用无效。
目的:我想通过eval调用Model.prototype.方法名称

39

主题

144

帖子

415

积分

中级会员

Rank: 3Rank: 3

积分
415
QQ
发表于 2015-4-10 13:36:30 | 显示全部楼层
eval(function(){
$model.prototype,checkKHMC();
})
不建议用eval,非要用就用匿名函数的方式
回复 支持 反对

使用道具 举报

26

主题

55

帖子

168

积分

初级会员

Rank: 2

积分
168
QQ
 楼主| 发表于 2015-4-10 15:23:56 | 显示全部楼层
yyyy 发表于 2015-4-10 13:36
eval(function(){
$model.prototype,checkKHMC();
})

能给个例子吗,感激不尽
回复 支持 反对

使用道具 举报

39

主题

144

帖子

415

积分

中级会员

Rank: 3Rank: 3

积分
415
QQ
发表于 2015-4-10 16:11:18 | 显示全部楼层
just_j++ 发表于 2015-4-10 15:23
能给个例子吗,感激不尽

如果函数名称是传过来的起始可以这样
define(function(require){
     Model.prototype.checkKHMC=function(){
                alert(22222);
                return false;
        };
var fnStr = 'checkKHMC';

if( !!Model[fnStr ] && typeof  Model[fnStr] === 'function' ){
Model[fnStr] ()
}
     return Model;
}

这样就不会有什么问题了,别忘了js里面的对象除了.调用之外,还可以用[]调用的,[]里面接收的就是字符串

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-24 15:04 , Processed in 0.066224 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表