<script>
document.write("实验1");
function name1() {
document.write("具名函数");
}
var name2 = function() {
document.write("<br/>匿名函数");
}
document.write("<br/>name1的name属性", name1.name);
document.write("<br/>name2的name属性<br/>", name2().name);
name1();
name2();
</script>
<script>
document.write("<br/><br/>实验2");
function name1() {
document.write("具名函数");
}
var name2 = function() {
document.write("<br/>匿名函数");
}
var name3 = name2();
document.write("<br/>name1的name属性", name1.name);
document.write("<br/>name2的name属性<br/>", name3.name);
name1();
</script>
<script>
document.write("<br/><br/>实验3");
function name1() {
document.write("<br/>具名函数");
}
var name2 = function() {
document.write("<br/>匿名函数");
}
document.write("<br/>name1的name属性", name1.name);
name1();
name2();
</script>
我想问的是当我删除"document.write("
name2的name属性
", name2().name);"这条语句时,就能显示具名函数,而不删除的话就显示不了,这是为什么
如果这段代码是错误的话,那为什么最后那条语句可以执行,可是如果是正确的话,那为什么下面紧邻的那条语句却不能执行,是JavaScript的判断延迟么,还是什么其它原因
name2().name 代码语法正确,运行时出错,导致程序终止运行。name2()返回值不是对象,而是undefined。