javascript 使用new关键字的区别
以下两种方式的区别在哪里?
第一种方式使用new关键字以原型的方式将user对象暴露到window对象中
javascript
//one var user = function(){ this.name=""; this.id=""; }; user.add = function(){ console.log("add"); }; user.delete = function(){ console.log("delete"); }; user.prototype = user; window.user = new user();
第二种方式不使用new关键字直接将user对象暴露到window对象中
javascript
//two var user = { name:"", id:"" }; user.add = function(){ console.log("add"); }; user.delete = function(){ console.log("delete"); }; window.user = user;
使用
html
<button onclick="user.add()">增加</button> <button onclick="user.delete()">删除</button>
提问
既然不使用new也能达到同样的目的是不是使用new关键字就没有意义了?这两种写法的真正区别到底是什么?
ps,没想到sf还支持markdown。哈哈。。。
$$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
第一种
第二种
window也是实例化的对象,和new一样,只是作用域不一样
@qianjiahao
谢谢了,明白啦。
还有一个疑问,通常:
从打开->加载->关闭->销毁,这整个过程中对象初始化都只需要执行一次,换句话说new关键字只出现过一次。那么在什么场景下才需要用到构造函数实例化对象的方式呢?按我的想法和经验用对象字面量来制造对象的方式几乎能满足所有的场景。
谢谢了。