什么是“;(''+元素+'')“;意思是
What does "('' + element + '')" mean?
function expand(element) {
var target = document.getElementById(element);
var h = target.offsetHeight;
var sh = target.scrollHeight;
var loopTimer = setTimeout('expand(''' + element + ''')', 10);
if (h < sh) {
h += 1;
} else {
clearTimeout(loopTimer);
alert("伸縮完成");
}
target.style.height = h + "px"
}
''
是'
的转义符,因此它所做的是构建一个可以作为函数使用的字符串,该字符串包含一个参数,该参数用单引号包装。。。
'expand('''
上面的部分"打开"字符串,将expand(
作为文字应用,然后是转义的'
,再加上一个'
以关闭字符串的该部分。因此,这方面的回报是:
expand('
接下来,他们连接元素变量的值:
'expand(''' + element
字符串现在包含:
expand('elementVariableValue
下一步是打开另一个文本字符串,添加另一个单引号(转义),然后是结束括号:
''')'
这被评估为:
')
把它们放在一起,你就会得到:
expand('elementVariableValue')
(最终解释为超时的函数)。
现在,使用JavaScript,您可以同时使用"
和'
作为字符串分隔符,因此可能更容易:
setTimeout("expand('" + element + "')", 10);
示例中的代码是一个递归调用。它是一个计时器,回调为expand(element)
。理解这一点,你就可以很容易地理解var loopTimer = setTimeout('expand(''' + element + ''')', 10);
意味着对expand(element)
的又一次调用。但是函数expand
需要一个字符串参数,所以''' + element + '''
是。最后,如果这里的element
等于scaleid
,我们最终得到expand('scaleid')
,这显然是对expand()
的另一个调用。因为它在字符串中,所以需要''
对其进行转义。
在Javascript中,您可以传递一个字符串作为函数的第一个参数,该字符串的求值方式就像使用eval()一样。该代码类似于每10毫秒调用一次函数expand("something")。
相关文章:
- 什么'它的意思是当一个变量位于括号外时
- 使用js/jQuery检查对象(而不是元素)是否真的存在
- 什么意思是“;向原型添加方法”;
- 什么是“;传递给NewPromiseCapability的非构造函数值“;意思是
- 什么是“;(''+元素+'')“;意思是
- 量角器-如何从中继器而不是元素中获得实际值
- 意思是.js - 登录后重定向用户 - 在本地工作,但在部署时不起作用
- 意思是.JS中间件中的猫鼬填充不起作用
- 究竟是什么'提供静态文件'意思是
- 什么是“;用户:某事;意思是在javascript onclick事件中
- 什么是“;Promise在事件循环的同一个循环上点火“;意思是
- 在 javaScript 中定义函数之前,什么意思是“一个单词:”
- 在轨道上打印东西(字面意思是对打印机)
- 意思是.js AngularJS 菜单服务为页面分配角色
- jQuery .load 在最近的跨度而不是元素本身
- getElementById 返回超链接的 HREF,而不是元素本身
- “this”返回的是[对象窗口],而不是元素
- 如何使用 javascript 返回 DOM 元素的 id,而不是元素的值
- 使用 JS 将文本隐藏在元素中(而不是元素本身)
- 什么意思是“服务器标签格式不正确”,这个按钮会发生什么