如何给你的json对象的某个方法,然后用这个对象的属性输出结果?
来源:互联网 发布:视频格式转换器 mac 编辑:程序博客网 时间:2024/06/02 03:04
最近做多语言切换功能时遇到一个问题,发送验证码后倒计时文本的问题。
这个验证码倒计时提示是需要传递倒计时时间参数的,因此就不能像简单的文本替换写个映射就简单解决,当然也是基于映射关系的,但是要麻烦一些。由于是自己测试出来的,成功之后就感觉像是发现了新大陆!!!(妈的,原来json对象还能这么玩儿)
不废话了,上代码、效果图!
代码:下面这段代码是处理多语言映射关系的一个js,写在一个粗糙的对象中,页面只需要调用TRANS方法并传递必要参数即可返回对应的语言。主要的操作就在langFormMap.TRANS这个方法属性中了。在最后一个else分支里,出现了两次变量赋值,为啥是两次?因为我试过一次失败了,形如:var val = this[type][word(param)],这么操作我觉得理所当然啊!然而并不行。
因此,先将word映射到的那个带参函数赋值给一个变量,然后再通过操作这个变量间接为原函数传值,通过这样两步骤终于是拿到想要的东西了
let langFormMap = { params:"", TRANS:function (type,word,param) { console.log(type,word,param) if (!this[type]){ console.log('no lang type') return word; }else{ if(typeof(param) == "undefined"){ return this[type][word]||word; }else{ // this.params = param; var fun = this[type][word] var val = fun(param) return val; } } }, "en": { "登录": "Login", "密码": "password", "确认密码": "repassword", "账号登录": "User Login", "注册新账号": "New Account", "手机号": "cellphone", "验证码": "verification code", "获取验证码": "get verification code", "countdown"(param){ return "after ("+param+")s latter" } }, "jp": { "登录": "登録", }, "fr": { "你好": "Bonjour", "热爱": "Aimer", },}
阅读全文
0 0
- 如何给你的json对象的某个方法,然后用这个对象的属性输出结果?
- 如何删除QScriptValue对象的某个属性?
- QBC如何通过某个对象中集合的属性来查询结果集
- JS 输出对象的属性以及方法
- JS:若对象数组中的某个对象含有某个属性-值对,则输出这个对象
- 如何设置JavaScript某个自定义的对象属性为只读
- jQuery怎么操作json对象jsonTest(即json类型的string,但是要先将string转换为json对象),获取对象属性、获取对象数组的某个对象
- JS中判断对象是否含有某个属性的方法
- JS中判断对象是否含有某个属性的方法
- java jackson 将对象转json时,忽略子对象的某个属性
- java jackson 将对象转json时,忽略子对象的某个属性
- json对象的方法
- 【OC学习-32】KVO-用一个对象监控另一个对象的属性,如有变化,则输出需要的结果
- 如何获取对象的属性和方法
- 把json对象数组属性相同的进行分组,然后取值
- js-获取对象的某个属性
- delete 删除对象的某个属性
- 如何定制对象中特定字段的JSON输出内容
- intellij idea 的一些奇怪现象
- 省市区三级级联
- 配置nginx使之支持pathinfo
- css写表格 table的高级属性
- TOKEN_PRIVILEGES 结构体
- 如何给你的json对象的某个方法,然后用这个对象的属性输出结果?
- SQL 各种JOIN
- LeetCode#215 Kth Largest Element in an Array
- pycharm 安装
- 【微信小程序开发笔记】--偶遇js深拷贝与浅拷贝问题
- is.finite/is.infinite/is.nan/NA
- BaseAdapter
- 注册校验+三级联动+上传头像
- mysql cpu100%优化