首页 > 关于javascript里面的new,如var obj = new Obj(a,b,c),Obj里面带参数怎么理解?

关于javascript里面的new,如var obj = new Obj(a,b,c),Obj里面带参数怎么理解?

一般情况下var obj=new Obj();这个我可以理解,
但是,,,,var obj = new Obj(a,b,c);这里面带参数我就蒙蔽了,求大神指点?
比如:

new Promise(function(resolve,reject){http.get(url,function(res){var html = '';res.on('data',function(data){html+=data})})})

为什么带参数就理解不了了………
构造函数当然可以带参数,也可以不带参数啊…………
到底带不带,那得看你构造函数怎么写的啊…………
就拿Js自带的数组来说,它也是可以带参数的啊:

var a = new Array(5);          //创建一个长度为5的空数组
var a = new Array(1,2,3,4);    //创建一个内容为[1,2,3,4]的数组

-----分割线----
对于这样:

new Promise(function(resolve,reject){http.get(url,function(res){var html = '';res.on('data',function(data){html+=data})})})

看着东西好像很多,实际上就只输入了一个函数而已,稍微整理一下层次:

new Promise(
    function(resolve,reject){
        http.get(
            url,
            function(res){
                var html = '';
                res.on(
                    'data',
                    function(data){
                        html+=data
                    }
                )
            }
        )
    }
)
//实际上就是下面这个啊
new Promise(function(){})

至于Promise是干嘛的,请看文档:
Promise


其实你问出这个问题,说明你对函数的本质还是没有理解。
建议去看看智能社的视频,里面有专门讲到函数传参,不定参,封装函数。
看完以后再来看自己的问题,你就有自己的答案了。

其实说白了,函数里面带参数,就是一个自己封装函数所带来的结果。
你构造了自定义函数,往里面写参数,就能得到你想要的答案,其实和计算器按“1”+“2“
得到3这个答案的性质是一样的。


构造函数创建对象时,也可以带参数,因为可以对对象进行一些属性的初始化,也就是你创建对象时,就带着这些属性,当然你也可以不带参数,后面实例化对象后再进行添加。
而且,js函数的参数在定义函数时可以不写,后面传入时可以随意传入任何数据和任何类型的参数,这是js的动态性。


构造函数传参啊。。 this.a = a.


首先我们都知道创建对象可以使用 new Object()和var obj={ ..}这两种常见的方法。
当我们想要使用 new 方法的时候创建的对象也要分为两种:内置的对象 和 自定义的对象
其中创建内置对象的时候我们需要传入系统合适的参数,比如new array(a,b,c)是不行的而new array(‘a’,'b','c')可以。
另外当我们创建自定义对象时,
比如:`function person(name,age){
var o = new Object();
o.name=name;
o.age=age;
return o;
}`
通过传入参数初始化一个对象,能够由已有的数据产生新的数据

【热门文章】
【热门文章】