怎么调用javascript中的函数中的函数,并且是传参数的,具体情况请看代码,第二个按键不能调用inTest方法
<scripttype="text/javascript">functiontest(str){alert("-------"+str);functioninTest(i...
<script type="text/javascript">
function test(str){
alert("-------"+str);
function inTest(info){ alert("test里定义的函数inTest"+info);}
// inTest(info);
}
</script>
<body>
<button onclick="test()">点击测试test函数</button>
<br />
<button onclick="test().inTest('1111')">点击测试inTest函数</button>
</body> 展开
function test(str){
alert("-------"+str);
function inTest(info){ alert("test里定义的函数inTest"+info);}
// inTest(info);
}
</script>
<body>
<button onclick="test()">点击测试test函数</button>
<br />
<button onclick="test().inTest('1111')">点击测试inTest函数</button>
</body> 展开
3个回答
展开全部
一般不建议这样写,应该把 inTest 写在外面,然后在 test 中调用。
不过你一定要这样写的话
<script type="text/javascript">
function test(str) {
alert("-------"+str);
this.inTest = function(info) {
alert("test里定义的函数inTest"+info);
}
}
</script>
<body>
<button onclick="test(222)">点击测试test函数</button>
<br />
<button onclick="new test(333).inTest('111')">点击测试inTest函数</button>
</body>
注意你给出的代码在调用 test 的时候都没有传参数,会出现 undefined。
调用 intest 会先执行 test 函数,会出现两次 alert。
展开全部
keneks正解,这是js闭包的概念,要调用inTest必须先初始化inTest,可通过new test()或直接调用test创建。
像keneks说的那样“new test().inTest('111')”;
也可以“test();inTest('111')”//注意,test()和inTest('111')”中间是分号,不是点号,这样会先运行test,同时能创建inTest函数,再调用即可。
像keneks说的那样“new test().inTest('111')”;
也可以“test();inTest('111')”//注意,test()和inTest('111')”中间是分号,不是点号,这样会先运行test,同时能创建inTest函数,再调用即可。
追问
对哈,由于是修改别人的代码,所以才必须这样调用的,谢谢了哈,再问一下哈,如果我不是通过onclick调用 ,而是通过另一个init方法调用,应该怎么调用呢??呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用this来定义才能对外公开访问,否则就是私有的,函数之外不能访问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询