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()就是全局函数,你可以在任何地方直接调用

本回答被提问者采纳
参考技术B

两种方法:

    实例化函数为对象

    闭包返回内部值

解释为什么不能直接访问函数内的变量或内嵌函数

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
这样是错误的,应该怎么用呢

js中,如果在方法内声明的变量,那么这个变量就是局部变量,只能在当前方法函数中调用
如果是在方法外声明的变量,那么这个变量就是全局变量,在后面的方法函数都可以调用
根据这个原理,你可以在方法函数外声明变量即可
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;

参考技术C 你想在哪里用 你这样写语法上就肯定是不对的 至少要写成类似这样 a+"px";

以上是关于JS 如何调用函数内部的函数(可以这样的理解:通过一个函数可以调用另一个函数的内部函数)的主要内容,如果未能解决你的问题,请参考以下文章

JS中如何在函数内部访问调用本函数的元素

理解闭包

JS中函数的地方方式

js闭包是啥?

(js)使用new对函数进行构造调用

js如何使用函数中的变量