怎么调用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>
展开
 我来答
马后雷鼓下扬州5058
2013-04-03 · TA获得超过4321个赞
知道小有建树答主
回答量:693
采纳率:33%
帮助的人:789万
展开全部

一般不建议这样写,应该把 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。

长颈之小鹿
2013-04-04 · TA获得超过226个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:88.9万
展开全部
keneks正解,这是js闭包的概念,要调用inTest必须先初始化inTest,可通过new test()或直接调用test创建。
像keneks说的那样“new test().inTest('111')”;
也可以“test();inTest('111')”//注意,test()和inTest('111')”中间是分号,不是点号,这样会先运行test,同时能创建inTest函数,再调用即可。
追问
对哈,由于是修改别人的代码,所以才必须这样调用的,谢谢了哈,再问一下哈,如果我不是通过onclick调用 ,而是通过另一个init方法调用,应该怎么调用呢??呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lvyingtang
2013-04-03 · TA获得超过645个赞
知道小有建树答主
回答量:675
采纳率:100%
帮助的人:698万
展开全部
用this来定义才能对外公开访问,否则就是私有的,函数之外不能访问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式