javascript中的对象有三种
1,内部对象
如array,boolean,data,math,number,object,regexp,string对象等
这些对象系统给我们提供了各自的属性与方法供调用。
2,基于类的对象
用类的方式实现对象的引用,这些类需要我们自己定义
3,基于原型的对象
提供有关如何使用 javascript 基于原型的对象模型的指南,并且提供指向特定信息的链接,这些信息描述基于原型的对象的自定义构造函数和继承。
在我们写js代码的时候,内部对象是不可避免的要引用,但是光靠这些对象是不够的,所以需要我们自己定义对象,这个时候通常用到的对象是第三种,即基于原型的对象,下面就如何创建自己的对象,定义对象的方法、属性,调用对象给出详细的说明。
复制代码 代码如下:
//jscript 的一个强大功能是能够定义构造函数,以创建自定义的基于原型的对象,以便在您的脚本中使用。
//要创建基于原型的对象的实例,首先必须定义一个构造函数。
//此过程将创建一个新对象并将它初始化(创建属性并赋初始值)。
//当完成后,构造函数将返回对所构造对象的引用。
//在构造函数内部,创建的对象是通过 this 语句引用的。
function people(name,age)//定义people对象
{
this.mname=name;//这里的mname表示属性,无需在外面定义,this指示的是people这个对象
this.age=age;
this.category=哺乳动物;
this.tostring=exporting;//方法,注意这里只能写tostring,而不是tostring()
this.mymethod=function()//等价于this.mymethod=method;然后下面写method的方法
{
return 你好;
}
}
function exporting()//可以有返回值,但函数名前不用写返回值的类型,如string,int之类
{
return 我的名字是——+this.mname+,年龄是——+this.age;
}
/*function method()
{
return 你好;
}*/
people.prototype.getname=function()//在构造函数外面写方法,
//也也可以这样写function people.prototype.getname()
//等价于在构造函数里面的方法:this.getname
{
return this.mname;
}
people.prototype.getage=this.age;//在构造函数外面写属性,
//等价于在构造函数里面的方法:this.getage
function people.prototype.getmoney()//同people.prototype.getmoney=function()等价
//也等价于在构造函数里的写法:this.getmoney
{
return 1000;
}
function show()//调用people对象
{
var me=new people(刘德华,22);//实例化people对象,关键字new
//var myname=me.getname();
//alert(myname);
me.sex=男;//这里的sex属性只能用于me这个实例,即特有属性
//而如果有定义var you =new people(小强,1);
//you这个实例却不能调用sex属性
//如果要这两个实例都可以引用的话应该把sex属性写作people.prototype.sex
//alert(me.sex);
//alert(me.category);
//alert(me.tostring());//或者直接写alert(me)即可
//alert(me.mymethod());
//alert(me.getmoney());
alert(me.mymethod()+\n姓名:+me.getname()+\n性别:+me.sex+\n类别:+me.category+\n总资产:+me.getmoney()+\n总结:+me.tostring());
}
根据上面的思路,可以在javascript内置对象上添加其它属性或者方法,下面为string对象增加一
good方法和bad属性,这是内置对象中所没有的方法和属性
复制代码 代码如下:
string.prototype.good=function()//自定义方法
{
return 恭喜你成功对内置string对象追加good方法;
}
string.prototype.bad=恭喜你成功对内置string对象追加bad属性;//自定义属性
function test()//调用string对象追加的属性和方法
{
var str=good good study;//定义一个字符串实例str
alert(str.good()+\n+str.bad);//调用自定义的string对象的方法good和属性bad
}
最后在html中添加两个button按钮,测试对象people和string对象追加的方法和属性
复制代码 代码如下:
javascript基于原型的对象
测试结果通过。。。。。。。表明对象的创建、对象方法属性的调用、内部对象的追加方法和属性调用都是正确的。