码迷,mamicode.com
首页 > 编程语言 > 详细

javascript的new运算的思考

时间:2015-06-17 11:17:33      阅读:110      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!