Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 4309|回复: 21

[JavaScript] JavaScript中的对象化编程

  [复制链接]

该用户从未签到

发表于 2016-4-19 16:22:25 | 显示全部楼层 |阅读模式
关于对象化编程的语句 现在我们有实力学习以下关于对象化编程,但其实属于上一章的内容了。

with 语句 为一个或一组语句指定默认对象。

用法:
with (<对象>) <语句>;
with 语句通常用来缩短特定情形下必须写的代码量。在下面的例子中,请注意 Math 的重复使用:
x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10);
y = Math.tan(14 * Math.E);
当使用 with 语句时,代码变得更短且更易读:
with (Math) {
  x = cos(3 * PI) + sin(LN10);
  y = tan(14 * E);
}
this 对象 返回“当前”对象。在不同的地方,this 代表不同的对象。如果在 javaScript 的“主程序”中(不在任何 function 中,不在任何事件处理程序中)使用 this,它就代表 window 对象;如果在 with 语句块中使用 this,它就代表 with 所指定的对象;如果在事件处理程序中使用 this,它就代表发生事件的对象。

一个常用的 this 用法:
<script>
...
function check(formObj) {
  ...
}
...
< /script>

< body ...>
...
< form ...>
...
< input type="text"  \on\change="check(this.form)">
...
< /form>
...
< /body>
这个用法常用于立刻检测表单输入的有效性。

自定义构造函数 我们已经知道,Array(),Image()等构造函数能让我们构造一个变量。其实我们自己也可以写自己的构造函数。自定义构造函数也是用 function。在 function 里边用 this 来定义属性。
function <构造函数名> [(<参数>)] {
  ...
  this.<属性名> = <初始值>;
  ...
}
然后,用 new 构造函数关键字来构造变量:
var <变量名> = new <构造函数名>[(<参数>)];
构造变量以后,<变量名>成为一个对象,它有它自己的属性——用 this 在 function 里设定的属性。

以下是一个从网上找到的搜集浏览器详细资料的自定义构造函数的例子:
function Is() {
  var agent = navigator.userAgent.toLowerCase();
  this.major = parseInt(navigator.appVersion);  //主版本号
  this.minor = parseFloat(navigator.appVersion);//全版本号
  this.ns = ((agent.indexOf('mozilla')!=-1) &&
             ((agent.indexOf('spoofer')==-1) && //是否 Netscape
              (agent.indexOf('compatible') == -1)));
  this.ns2 = (this.ns && (this.major == 3));    //是否 Netscape 2
  this.ns3 = (this.ns && (this.major == 3));    //是否 Netscape 3
  this.ns4b = (this.ns && (this.minor < 4.04)); //是否 Netscape 4 低版本
  this.ns4 = (this.ns && (this.major >= 4));    //是否 Netscape 4 高版本
  this.ie = (agent.indexOf("msie") != -1);      //是否 IE
  this.ie3 = (this.ie && (this.major == 2));    //是否 IE 3
  this.ie4 = (this.ie && (this.major >= 4));    //是否 IE 4
  this.op3 = (agent.indexOf("opera") != -1);    //是否 Opera 3
  this.win = (agent.indexOf("win")!=-1);        //是否 Windows 版本
  this.mac = (agent.indexOf("mac")!=-1);        //是否 Macintosh 版本
  this.unix = (agent.indexOf("x11")!=-1);       //是否 Unix 版本
}

var is = new Is();
这个构造函数非常完整的搜集了浏览器的信息。我们看到它为对象定义了很多个属性:major, minor, ns, ie, win, mac 等等。它们的意思见上面的注释。把 is 变量定义为 Is() 对象后,用 if (is.ns) 这种格式就可以很方便的知道浏览器的信息了。我们也可以从这个构造函数中看到,它也可以使用一般的 JavaScript 语句(上例中为 var 语句)。

让我们再来看一个使用参数的构造函数:
function myFriend(theName, gender, theAge, birthOn, theJob) {
  this.name = theName;
  this.isMale = (gender.toLowerCase == 'male');
  this.age = theAge;
  this.birthday = new Date(birthOn);
  this.job = theJob
}

var Stephen = new myFriend('Stephen', 'Male', 18, 'Dec 22, 1982', 'Student');
从这个构造函数我们不但看到了参数的用法,还看到了不同的属性用不同的数据型是可以的(上例五个属性分别为:字符串,布尔值,数字,日期,字符串),还看到了构造函数里也可以用构造函数来“构造”属性。如果用了足够的“保护措施”来避免无限循环,更可以用构造函数自身来构造自己的属性,教程原文回复可见。
视频教程传送:http://www.woxueyuan.com/
回复

使用道具 举报

该用户从未签到

发表于 2016-4-29 09:10:02 | 显示全部楼层
顶而不懈,遇到好贴决不能放过













健康       
养生粥针对男人的       
冬季养生方法       
音乐       
阳虚体质冬季养生       
微博       
学校热点       
学校历史       
男歌手       
社会       
黄帝内经四季养生法       
养生方法及好处       
心理美文欣赏       
导引养生功       
他山之石       
中医体质养生答案       
六盘水最新新闻       
秋季养生知识大全       
珠宝       
名家美文欣赏及赏析
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-5-5 12:59:12 | 显示全部楼层
好贴,一定不要放过,顶












休闲  潮品  婚恋   女性   家居  健康
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-5-6 10:20:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-5-6 15:10:54 | 显示全部楼层
真是好东西呀











校园  特长   文化  历史  自然
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-5-7 05:21:27 | 显示全部楼层
我顶啊。接着顶













汽车标志       
把握住钓鱼最佳时机       
硕果累累       
权威发布       
经典美文赏析姐       
黑龙汲星胸甲       
尖端武器       
美文加赏析600字       
石英胸甲       
汽车维修手册       
垂直电商       
小小弥乐的背包       
600字美文及其赏析       
汽车贴膜技巧       
通天小鬼       
阳虚的人如何养生       
龙头炮的炮身       
网络游戏       
四季养生粥做法大全       
精英冲角团的气功牌
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-5-7 20:29:39 | 显示全部楼层
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-5-8 10:57:07 | 显示全部楼层
嘿嘿~奸笑中!













练习图腾       
汽车新款       
力天使敢达       
中国式摔跤国际大赛       
汽车维修教程       
汽车改装开关       
进化无常       
中医艾灸养生       
阿卜杜勒卡迪尔凯塔       
上海特奥体育中心       
古代耽美文推荐       
魅力女兵       
李一养生智慧       
古代耽美文推荐       
母校记忆       
明星风尚       
新式步       
高级防御       
汽车新款       
站长
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-5-8 18:29:08 | 显示全部楼层
共同发展!学习才会进步,谢了













斯蒂法尼娅贝尔蒙多       
原创       
戒色养生运动       
拉脱维亚文斯比尔斯       
中医经络养生话术       
美文摘抄加赏析200字       
娱乐名人       
黄帝内经与养生       
安德里斯比德林斯       
道家养生点心精粹       
聚合阅读       
宿舍管理       
经典情感美文       
欢乐军营       
珠宝       
地灵绝魂长靴       
春季养生专题       
狼牙护甲       
美文共赏摘抄       
季风
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-5-11 05:33:15 | 显示全部楼层
呵呵,好帖,好好看看













汽车驾评       
考那斯萨尔吉利斯       
夏天健康养生小知识       
有酒不饮奈明何       
英语美文手写       
多彩生活       
春季养生口诀       
埃曼努埃尔埃布埃       
贝尔格莱德红星竞技       
玄武岩护肩       
情感美文含泪的思念       
哲理美文600字       
健康       
中医体质养生方法       
英特尔       
安祖赛弗       
美文美句赏析       
养生心脑血管       
公主的小伞       
社会观察
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-3-29 07:56 , Processed in 0.424202 second(s), 35 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表