----------------------------------
另外,在函数的末尾没有return值,所有在html文件内嵌入的document.write(...)输出为undefined
方法一:
function go(){ alert('GO!') }//写函数在插入就能读取了
var newsc = "<script id='sc1' type='text/javascript'>"+go+"<\/script>"
var e = document.getElementByIdx_x_x('div1')
e.innerHTML = newsc。
方法二:
var newsc = "<script id='sc1' type='text/javascript'>go.go()<\/script>"//定义为对象可以直接从字符串写入;
var e = document.getElementByIdx_x_x('div1')
e.innerHTML = newsc
go={go:function(){alert('go!')}}
</script>。
函数在数学上的定义:给定一个非空的数即A,对A施加对应法则f,记作f(A),得到另一数即B,也就是B=f(A).那么这个关系式就叫函数关系式,简称函数.
函数定义:
在一个变化过程中,发生变化的量叫变量,有些数值是不随变量而改变的,我们称它们为常量。自变量,函数一个与它量有关联的变量,这一量中的任何一值都能在它量中找到对应的固定值。因变量(函数),随着自变量的变化而变化,且自变量取唯一值时,因变量(函数)有且只有唯一值与其相对应。
函数值,在y是x的函数中,x确定一个值,Y就随之确定一个值,当x取a时,Y就随之确定为b,b就叫做a的函数值。
是作用域的问题。因为你的变量 b 是定义在函数 a 作用域里的。setInterval 第一个参数可以是 function,也可以是 code(字符串)。如果是 code 的话,code 将会使用 eval()() 执行,eval() 执行会带来很多问题,所以这种方法不被推荐使用
你这个例子就是因为 eval 在执行的时候作用域在顶层,也就是会在 window 下找你的 b 函数,所以就是 undefined。
推荐你使用 function 做第一个参数,代码就可以写成:
var x = setInterval( function() {console.log( i )
if( ++i == 5 ) {
clearInterval( x )
}
}, 1000 )