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
12 个月之前 回复
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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!