摘要:今天遇到了一个比较困惑的问题,当我在写闭包的时候为对象的属性写的时候发现了一个问题,函数中对象的属性并不能直接使用参数,被直接视为中的为的如后来想到了用的方法测试发现等同于推测也就等同于那么为对象的属性刚刚看到这位朋友的提醒,为了不因为我的
今天遇到了一个比较困惑的问题,当我在写闭包的时候
var t = {test :{color : "red"}} function setTable(n){ //n为对象的属性 return { color : t.n.color } } var test = setTable("test");//color is not defined
写的时候发现了一个问题,函数中对象的属性并不能直接使用参数,t.n被直接视为 t 中的 value 为 "n"的 key ,如:
console.log(t.n) //undefined s = { n : 1} console.log(s.n)//1
后来想到了用 eval()的方法,
console.log(eval("t"))//{test{color:red}}
测试发现:eval("t") 等同于 t;
推测 eval("t."+"test")也就等同于 t.test;
那么
function setTable(n){ //n为对象的属性 var s = eval("t."+n); return { color : s.color } } var test= setTable("test");//{color : red}
刚刚看到 hughw 这位朋友的提醒,为了不因为我的思路而误导大家,借用他说的方法将代码整理出来:
function setTable(n){ //n为对象的属性 return { color : t[n].color } } var test= setTable("test");//{color : red}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/84763.html
摘要:在父页面中文章详情模板添加需要执行锚点拼接的函数新增函数,处理二级回复去除尾部符号刷新并定位到锚点函数中运用了的三元运算符,翻译成人话就是如果成立则返回,如果不成立就返回。 老读者注意:上一章消息通知有个bug,即发给管理员的notify必须移动到new_comment.save()的后面,否则会导致action_object存储为NULL,并且导致本章的html拼接锚点失效。原文已...
摘要:概述是一种跨域通信的手段,它的原理其实很简单首先是利用标签的属性来实现跨域。可靠的实现添加回调函数拼接传递的是一个匿名的回调函数,要执行的话,暴露为一个全局方法出错处理使用示例来源个人博客 1. 概述 jsonp是一种跨域通信的手段,它的原理其实很简单: 首先是利用script标签的src属性来实现跨域。 通过将前端方法作为参数传递到服务器端,然后由服务器端注入参数之后再返回,实现服...
摘要:然后,生成的完整的字符串大致如下以上是一系列通用的键值转换方法就是的主体函数其他属性的拼接最后,将字符串传入构造函数来创建相应的函数。 1. 熟悉的JSON.stringify() 在浏览器端或服务端,JSON.stringify()都是我们很常用的方法: 将 JSON object 存储到 localStorage 中; POST 请求中的 JSON body; 处理响应体中的 ...
摘要:应用的功能这个应用是一个个人简历生成器。比较好的教程有这一个。这样的命名污染问题自然显而易见。而且发出多次请求也会影响性能。明显不利于维护。然而我希望能够不发生变化,因为是在文件的前提下的标签页,不能换一个标签就重建一个。 为什么学习backbone?这是个好问题。在这个前端框架爆炸的年代,比起backbone,对开发来说有更多更好的选择,react,vue,angular等等。但这些...
阅读 1436·2021-09-30 09:57
阅读 1418·2021-09-09 09:33
阅读 2142·2021-09-04 16:40
阅读 1774·2021-09-01 10:50
阅读 3211·2021-09-01 10:31
阅读 2497·2019-08-30 15:56
阅读 2938·2019-08-30 15:44
阅读 3455·2019-08-29 17:29