JS内部函数有两种:1、声明函数 function inner(){....}
有参数的声明函数:function inner2(element) {.....}
2 、匿名函数this.pop= function(){...}
有参数的匿名函数:this.push = function(element){......}
<!DOCTYPE html>
<html>
<head>
<title>2stack to </title>
<meta charset="utf-8">
<script type="text/javascript">
function a(){
console.log("a");
}
function a(element){
console.log(element);
}
function stack(arr){
console.log("stack");
function inner1(){
console.log("inner1");
}
globalVar1 = inner1;
function inner2(param1){
console.log(param1);
}
globalVar2 = inner2
this.push = function(element){
arr.push(element);
return arr;
}
globalVar3 = function(element){
arr.push(element);
return arr;
}
}
var arr= [2,4,6];
//示例1:javascript没有函数重载,以下调用结果:undefined, test
a();
a("test");
//示例2:利用全局变量调用内部函数
var globalVar1;
stack(arr); // 必须先调用,才能给globalVar1赋值,下一步才调用成功,否则出错!
globalVar1();
var globalVar2;
stack(arr); // 必须先调用,才能给globalVar2赋值,下一步才调用成功,否则出错!
globalVar2("inner2"); // 传递带有参数的!
var globalVar3;
console.log("globalVar3 :" + globalVar3(66));
//示例3:正常调用内部函数
var newFunc = new stack(arr);
var newArr = newFunc.push(33);
console.log("newArr: " + newArr);
//示例4:直接调用外部函数
stack(arr);
</script>
</head>
<body>
</body>
</html>