日期:2014-05-16 浏览次数:20431 次
我们这节讲到:如何创建自己的对象,如何创建构造方法,如何创建公有、私有、特权、静态成员。
如何创建自己的对象:我们从以下三点来讲:
1、我们从最简单的例子开始:var myObject=new Object();还有一种等价的方式:var myObject={};无论从哪种方式最终的myObject变量都是Object对象的实例,他作为一个对象的存在外没有任何其他作用。
2、实例化的过程,首先通过new关键字告知JS创建一个全新对象。然后新建的实例被赋值给一个变量,以便你可以通过引用那个变量来访问对象的新实例。不过为了做到这一点所实例化的对象必须是一个构造函数。
3、每个核心对象,例如:Object、Function、Array和String都含有构造函数。
当完成对象实例化之后就不能再基于新实例使用new关键字创建例外的实例了。
var anotherObj=new myObject();
就会报错,说myObject不是构造函数:我们看一下:
<title>创建自己的对象</title> </head> <body> <script type="text/javascript"> var myObject={};//new Object(); alert(""); </script> </body>
我们现在创建了一个myObject对象,那么我们继而创建的话:
<title>创建自己的对象</title> </head> <body> <script type="text/javascript"> var myObject={};//new Object(); var obj=new myObect(); alert(""); </script> </body>
就会报错。
如何来创建构造函数:
1、Function是创建构造函数的起点。
<script type="text/javascript"> function myConstructor(a){ /*某些代码*/ } </script>
2、上面的代码等价于下面的代码:
<script type="text/javascript"> var myConstructor=new Function('a','/*某些代码*/'); </script>
3、下面使用new的方式有性能问题所以不推荐使用。
4、Function对象的特别之处在于,它的实例也能作为构造方法,因此可以用来创建函数的新实例。所以可以编写下面的代码:
<script type="text/javascript"> function myConstructor(a){ /*某些代码*/ } var myObject=new myConstructor(); </script>
此时,myConstructor函数可以作为构造函数。当对象被实例之后,构造函数会执行包含的代码。
<script type="text/javascript"> var myObject={};//new Object(); function myConstructor(message){ /*某些代码*/ alert(message); this.myMessage=message; } var myObj=new myConstructor('hel