文章详情页
javascript - js 面向对象
浏览:40日期:2023-05-11 10:46:56
问题描述
请问一下 new 后面的mm函数 加不加括号有什么区别 为什么我得到的结果都是一样的请资深大神讲解一下里面的原理
问题解答
回答1:首先,这种偏向基础的问题要学会查阅官方文档文档中有详细说明:new foo 等同于 new foo(), 只能用在不传递任何参数的情况当然,也不能完全相信文档,毕竟js的坑。。那差别在哪呢?在这优先级汇总中有详细说明:new(带参数列表的)的优先级为19,而new(无参数离别)的优先级为18,所以new foo()会先执行
最后,我记得不久前看到一篇文章讲的就是一个比较恶心的面试题,考的就是.,new f(),new f,new f.g(),new f().g()等等的优先级运算问题,可以自己搜一下看看
回答2:参考 MDN
new constructor[([arguments])]
不需要传递参数时,括号()是可选项
回答3:var mm = function(val){
this.m = val
}var a = new mm(1) ;console.log(a)var b = new mm ;console.log(b)
回答4:如果构造函数不需要参数,加和不加括号没有区别。
标签:
JavaScript
相关文章:
1. css3 怎么实现锯齿状的剪纸效果(如图)2. javascript - 责任具体在哪一方3. 老师 我是一个没有学过php语言的准毕业生 我希望您能帮我一下4. php - 想要远程推送emjio ios端怎么搞 需要怎么配合5. 冒昧问一下,我这php代码哪里出错了???6. mysql - 请教一条sql7. angular.js - 使用requireJS管理JS, angularJS就不需要用ng-app了吗?8. CSS清除浮动有几种方法?9. javascript - 原生JS实现发送验证码计秒10. javascript - h5分享链接到qq或者微信时有一个缩略图还有一些说明文字,这个要怎么去修改里面的图片和内容?
排行榜