首页 > 编程语言 > 详细

javascript的new运算的思考

时间:2015-06-17 11:15:55      阅读:249      评论:0      收藏:0      [点我收藏+]

看到一篇关于javascript单例的文章 http://blog.crazycoder.cc/post/13

对javascript new运算有些思考:

情况1:

function test1(){

  return {name:‘test1‘};

};

new test1的结果:{name:‘test1‘}

情况2:

function test2(){

};

test2.prototype={name:‘test2‘};

new test2 的结果:{name:‘test2‘}

情况3:

function test3(){

return {name:‘test3-1‘};

};

test3.prototype={name:‘test3-2‘};

new test3 的结果:{name:‘test3-1‘}

情况4:

function test4(){

return ‘test4‘;

};

new test4 的结果:{}

情况5:

function test5(){

return [];

};

new test5 的结果:[];

情况6:

function test6(){

return function(){ return ‘test6‘};

};

new test6 结果:function(){ return ‘test6‘};

 

结论:

与java不同,javascript的new运算是有返回值的,返回值可以是对象、数组、函数,若返回值类型不符合要求,则返回原型的浅克隆,否则返回返回值对象。

 

疑问:

原文中

 //构造函数指针
  instance.constructor = Singleton;

这行去掉似乎也是正确的...

 

javascript的new运算的思考

原文:http://www.cnblogs.com/felix-grey/p/4582383.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!