JS 如何调用函数内部的函数(可以这样的理解:通过一个函数可以调用另一个函数的内部函数)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 如何调用函数内部的函数(可以这样的理解:通过一个函数可以调用另一个函数的内部函数)相关的知识,希望对你有一定的参考价值。
参考技术A var obj = function()this.a = function(arg)alert(arg);
this.b = function(arg)alert(arg+1);
var fn = new obj;
fn.a('TEST');追问
function one()
function a()
alert("我很好!");
function two()
//想在这里面调用函数one里面的a怎么弄?
调用不了,你的a()放在one()里,对外面而言,a()是匿名函数,外面访问不到。
你可以改成:
function one()
this.a = function()
alert("我很好!");
这样,你就可以用我上面的方法来调用
也可以改成
function one()
window.a = function()
alert("我很好!");
这样,a()就是全局函数,你可以在任何地方直接调用
两种方法:
实例化函数为对象
闭包返回内部值
解释为什么不能直接访问函数内的变量或内嵌函数
function foo()var var1=18;
function baz()
console.log(var1);
baz(); // ReferenceError
foo.var1; // TypeError
foo.baz(); // TypeError
函数具有隔离内部值,即保护内部私有值或函数的能力。所不直接或间接访问。
方法一:实例化函数对象,略....。
方法二:闭包
function foo()var val1=18;
function baz()
console.log(val1);
return //返回值对象实质上是一个 我们模块的公有API
varl1:varl1,
baz:baz
var m=foo();
m.var1; // ok
m.baz(); // ok 参考技术C 可以用闭包
js如何使用函数中的变量
function x(o)
document.all.div1.style.top = event.clientY;
document.all.div1.style.left = event.clientX;
var a = window.event.x;
var b = window.event.y;
我想使用里面的a和b, 比如 top: "+a+" px; left: "+b+" px
这样是错误的,应该怎么用呢
如果是在方法外声明的变量,那么这个变量就是全局变量,在后面的方法函数都可以调用
根据这个原理,你可以在方法函数外声明变量即可
var arr,x;
function aaa()
arr = new Array();
x = 'pcs';
.....你的其他代码
function bbb()
这里就可以调用上面声明的变量arr和x了
......你的其他代码
参考技术A js中的变量只能在<script></script>中使用,不能拿出这个标签之外使用
你可以这样使用:
function x(o)
document.all.div1.style.top = event.clientY;
document.all.div1.style.left = event.clientX;
var a = window.event.x;
var b = window.event.y;
document.getElementById("div").style.top=a+"px";
document.getElementById("div").style.left=b+"px";
这样是可以使用的 参考技术B 如果你一定要使用函数里的变量.那就有在函数里把需要的变量进行返回.
return a;
这样就可以使用a了.但是你如果想获取a和b两个.你为何还要用这个函数呢
直接把函数里的内容拿出来.就直接使用了啊追问
我想onclick点击,然后获得当前坐标,并设置某窗口位置top:x px; left:y px;
追答那也可以.
你把函数返回个数组就可以了.数组里包含a和b
var zuobiao= new Array(2)
zuobiao[0]=a;
zuobiao[1]=b;
reurn zuobiao;
以上是关于JS 如何调用函数内部的函数(可以这样的理解:通过一个函数可以调用另一个函数的内部函数)的主要内容,如果未能解决你的问题,请参考以下文章