谁帮我详细解释以下JS语句执行的原理

lgc13 2009-04-15 09:50:24
javascript:alert(window.c=function(){document.getElementsByTagName("input")[0].value = "你看看我的长度有没有4个字符呢?"}())

为什么在alert()里的语句能能执行呢,主要是这个问题
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgc13 2009-04-15
  • 打赏
  • 举报
回复
thanks
yixianggao 2009-04-15
  • 打赏
  • 举报
回复
改了改,有返回值了
L@_@K
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<script type="text/javascript">
<!--
var i = 0;
//-->
</script>
</head>

<body>
<input type="text" id="" size="100" />
<input type="text" id="" size="100" />
<input type="text" id="" size="100" />
<input type="text" id="" size="100" />
<input type="button" value="run" onclick="alert(window.c=function(){return document.getElementsByTagName('input')[i++].value = '你看看我的长度有没有'+i+'个字符呢?';}())" />
<input type="button" value="show window.c" onclick="alert(window.c)" />
</body>
</html>
yixianggao 2009-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lgc13 的回复:]
window.c 这句有什么特别意义吗
[/Quote]
真滴没意义!
去掉以后效果一样!
javascript:alert(function(){document.getElementsByTagName("input")[0].value = "你看看我的长度有没有4个字符呢?"}())

但是如果匿名函数有返回值滴话,那就有意义了,即为 window.c 赋值!
yixianggao 2009-04-15
  • 打赏
  • 举报
回复
window.c = ... // 赋值语句;
function(){...}() // 赋值语句的右侧表达式,这叫 匿名函数自调用,最后滴括号很重要!
由于 function(){...}() 没有返回值,
因此 alert(window.c) 仍为 undefined!
lgc13 2009-04-15
  • 打赏
  • 举报
回复
window.c 这句有什么特别意义吗
redcn2004 2009-04-15
  • 打赏
  • 举报
回复
先执行在弹出的呀

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧