无为清净楼资源网 Design By www.qnjia.com
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对象追加的方法和属性
复制代码 代码如下:
<html>
<title>JavaScript基于原型的对象</title>
<body>
<div>
<input type="button" value="自定义对象定义" onclick="show()">
</div>
<div>
<input type="button" value="内置对象追加方法" onclick="test()">
</div>
</body>
</html>
测试结果通过。。。。。。。表明对象的创建、对象方法属性的调用、内部对象的追加方法和属性调用都是正确的。
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对象追加的方法和属性
复制代码 代码如下:
<html>
<title>JavaScript基于原型的对象</title>
<body>
<div>
<input type="button" value="自定义对象定义" onclick="show()">
</div>
<div>
<input type="button" value="内置对象追加方法" onclick="test()">
</div>
</body>
</html>
测试结果通过。。。。。。。表明对象的创建、对象方法属性的调用、内部对象的追加方法和属性调用都是正确的。
标签:
基于原型,对象
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2024年11月17日
2024年11月17日
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】