首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JavaScript 深入懂得对象创建方式

2012-10-15 
JavaScript 深入理解对象创建方式???? 在JS中,为了改进语言熟悉程度,也引入了“构造函数”这样的机制,但是在

JavaScript 深入理解对象创建方式

???? 在JS中,为了改进语言熟悉程度,也引入了“构造函数”这样的机制,但是在JS中构造函数本身也是函数,只是可以用来创建对象。在JS中创建对象,也需要用到new操作符,它的实际过程是这样的:

????


?

?

?

?

?? 上面图是我自己手绘的,呵呵,请诸兄不要笑话。

?? 要检测对象和原型之间的关系的方法是:

??

function Person(){}Person.prototype={    constructor:Person,    name:"ted",    age:11,    sayName:function(){         alert(this.name);    },    friends:["a","b"]}var ted=new Person();var marry=new Person();alert(ted.friends==marry.friends);//输出trueted.friends.push("c");alert(ted.friends);//输出a b calert(marry.friends);//也输出a b c

?

??? 如果你的本意就是想设计的让所有对象共享相同属性,那么上述方法没有任何问题,并且在某种程度上还提高了内聚性。但是实例一般有属于自己的单独的属性的,这也是为什么会很少单独只使用原型模式的问题了。

?

1 楼 fantaxy025025 2011-12-22   伙计,你的这个说法猜测的好像有问题~

1:创建一个对象(这一过程完全在new操作符之前) 
2:将构造函数的作用域赋给该对象(因此this也就指向了该对象) 
3:执行构造函数(创建属性和方法) 
4:返回新对象  //---->>这一步猜测的有问题<<----
例如:
function f(){
  this.a = 100;
  return [1,2,3];
}
x = new f();//你打出来试试看吧~



2 楼 bestchenwu 2011-12-23   fantaxy025025 写道伙计,你的这个说法猜测的好像有问题~

1:创建一个对象(这一过程完全在new操作符之前) 
2:将构造函数的作用域赋给该对象(因此this也就指向了该对象) 
3:执行构造函数(创建属性和方法) 
4:返回新对象  //---->>这一步猜测的有问题<<----
例如:
function f(){
  this.a = 100;
  return [1,2,3];
}
x = new f();//你打出来试试看吧~






这是两码事吧?你在构造函数的结尾返回一个数组对象,如果是JAVA,你可以在构造函数的末尾返回一个其他类型的对象吗?

热点排行