2 qq969068709 qq969068709 于 2017.01.04 13:40 提问

js中函数外面定义的对象,在函数里面不能调用

图片说明
图片是我的代码截图,函数外面定义的对象,在函数里面为什么不能调用。但是,把定义的函数,剪切到函数里面就没问题,求大神指点

4个回答

showbo
showbo   Ds   Rxr 2017.01.04 13:52

就你贴出来的这个代码没有问题,除非你再函数内部var 重新定义过myArr

qq969068709
qq969068709 贴出来的代码就是我运行的代码,alert的是undefined
一年多之前 回复
csmzl
csmzl   2017.01.04 16:44

以下代码木有问题:






<br> var myArr={<br> key1:&#39;abc&#39;,<br> key2:&#39;def&#39;<br> }<br> function addArray(){<br> for( var key in myArr){<br> alert(key);<br> }<br> }<br>

csmzl
csmzl   2017.01.04 16:41

又失手了! 以下代码木有问题:

 <html>
    <head>
    </head>
    <body>
    <input type="button" id="confirmBtn" value="确 定" onclick="addArray()">  
        <script language="javascript"> 
            var myArr={
                key1:'abc',
                key2:'def'
            }
            function addArray(){
                for( var key in myArr){
                    alert(key);
                }
            }
        </script>
    </body>
</html>
u011249920
u011249920   2017.01.04 16:44

JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式

1.方法调用模式:
先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this即指当前的myobject
对象。
var blogInfo={
  blogId:123,
  blogName:"werwr",
  showBlog:function(){alert(this.blogId);}
};

blogInfo.showBlog();

2.函数调用模式
定义一个函数,设置一个变量名保存函数,这时this指向到window对象。

var myfunc = function(a,b){
  return a+b;
}

alert(myfunc(3,4));

3.构造器调用模式
定义一个函数对象,在对象中定义属性,在其原型对象中定义方法。在使用prototype的方法时,必须实例化该对象才能调用其方法。
var myfunc = function(a){
  this.a = a;
};
myfunc.prototype = {
  show:function(){alert(this.a);}
}

var newfunc = new myfunc("123123123");
newfunc.show();

4.apply,call调用模式
var myobject={};
var sum = function(a,b){
  return a+b;
};
var sum2 = sum.call(myobject,10,30); //var sum2 = sum.apply(myobject,[10,30]);
alert(sum2);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
$(function (){}) 里写的函数 在外部不能调用!?
$(function (){ /*$(":button").click(function (){ 这样是可以的 alert('dfdaf') })*/ function t1(){ alert('asdfsadf') //这样就不行 因为外部不能调用里面的函数 } }) 用户: 年龄:
事件document.Ready里的函数和外面的函数的区别
document.Ready里的函数是页面全部加载完毕后才执行的和绑定的函数。 document.Ready外的函数是页面加载前就执行的函数和绑定事件,因此在外面绑定事件是不成功的,因为页面都没有,绑定是找不到元素的,所以事件要在document.Ready里面写 上图是在document.Ready外的函数,先执行,但是类似的单击等绑定事件不成功 ready有简单的写法 $(func
layui 外部调用use内定义的函数
外部调用layui.use内定义的函数需要引入 layui.all.js ,并定义 window.xxx函数 window.ajaxSubmit = function(){ form.on('submit('+submit.filter+')', function(data) { $.ajax({ url: submit.ur...
$(function(){});里的方法无效问题
$(function(){})已经是一个匿名函数了,在里面定义的函数已经是私有了,不能全局访问。把函数定义在全局,也就是function外面,这样外部才能调用。
JavaScript—在嵌套的内部函数中调用外部this的方法
在javascript中经常出现函数中嵌套函数的情况。尤其是在对象函数中嵌套的函数,往往需要调用外部函数(对象函数)的this。但是如果直接在内部里调用this,得到的是当前函数(内部函数)的this。var obj = { name: 'jane', friends: ['tarzan','cheeta'], loop: function() { this.
关于JavaScript中函数的定义、对象以及对象实例化的理解
趁近段时间不是很忙,把之前有关JS学习的一些笔记整理了一下: 函数的定义:通俗点来讲,函数是由事件驱动或者它被调用时执行的可重复使用的代码块。在JS中,函数的定义方式通常有以下几种: (1)function语句(函数声明): 语法:function函数名(参数1,参数2…){函数体} 例:function test(a,b){ return(a+b); } (2)函数表达式,又称函数字面量: 语法:var 变量名=function(参数1,参数2…){函数体} 例:v
js在if else语句中var的变量在条件语句外可以使用吗?
答案:可以。 实例如下: Insert title here document.write("这是一个标题"); function myFunction() { document.getElementById("demo").innerHTML="我的第一个 JavaScript 函数"; } function test() { var
解决ajax方法内部不能给方法外部变量赋值的问题
//检查用户名是否注册 var isRegist = ""; $.ajax({ type: "POST", url: "registUsernameCheck.do", dataType : 'text', data : $('#form1').s
JS 之函数定义 & 创建对象 三种方式
JS函数创建三种方式 JS创建对象三种方式一、javaScript 函数创建的三种方式<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>The three ways </title> <script type="text/javascript"> /* 方式一、functi
jquery绑定函数写在$()函数里面与外面的区别
//如果页面加载完成后,才会去绑定function里面的事件,此时可以确保页面的资源已经加载完毕。 $(function(){   $('.J-datequery').each(function() { new MyCalendar($(this).attr('name')); })  /*分页*/ $('div#qpage a').click(function() { $