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入门到精通教程
查看: 921|回复: 0

JavaScript的类型和原型

[复制链接]

该用户从未签到

发表于 2011-10-16 18:28:40 | 显示全部楼层 |阅读模式
javaScript的类型和原型之间是什么关系呢?刚看的时候真的有些迷糊。

到现在为止我还没有一本关于JavaScript的参考书,全是电子版的,找到了一本JavaScript王者归来,却只有一点五兆。就几章!!今天有兴趣又下载了几本电子书,却都是pdg格式,没这个软件,看不了,郁闷啊!

我会尽快买一本的,计算机的书贵啊,有钱的话早就买了!!

因为一直没有一本书,现在看的都是电子版的,所以看到一些不大理解的概念也懒得返回去再看!!现在又看到了,就总结一下啦!

JavaScript的prototype,在JavaScript中是很重要的,一开始的时候书上说的真的是一头雾水,到最后说白了,就是Java里面的继承,如果你是一个java程序员,就简单的多啦!!不过还是有几点不一样的。

在JavaScript中没有具体的类

比如说要创建一个猫科动物,直接写函数就可以了!!

举个例子

要创建一个猫对象
然后再创建一个老虎对象
让老虎的对象以猫为原型来增加自己对象的属性,来使自己的属性和功能变的强大
这样做的目的也是对代码的重用,增加效率!

function Cat(color,name){
this.color = color;
this.name = name;
.......
}
Cat.prototype.showMe= function(){
alert("My color is "+this.color+" , and my name is "+this.name);
}

//我感觉这是构造函数,既然JavaScript中没有类,这个一定就是构造函数了

var oCat = new Cat();//这是实例化对象

function Tiger(color,name){
this.color = color;
this.name = name;

}
Tiger.prototype = new Cat();
var oTiger = new Tiger("yellow","king");
oTiger.showMe();
// output My color is yellow , and my name is king
这样就可以了

这是一个非常简单的例子,我写这些的目的是为了更好的理解,和加深对它们的记忆。
我感觉自我总结这个方法蛮有效的!大家都可以试试!

在Tiger的构造函数中并没有定义showMe这个方法,但是通过以Tiger.prototype = new Cat();这句代码解决了重写代码的问题,当然,这个方法很短,没必要,如果方法很长呢?复制,粘贴?这就影响效率了!!!这句代码的意思就是以Cat为原型创建Tiger类型,新类型具有原型的一切属性和方法。
如果在类型中有一个和原型一样的属性,那么新类型的属性值将会覆盖掉原型的值,但是原型的值并没有删掉或改变,只是在这个范围内被覆盖!!

新类型也可以通过prototype为自己添加新属性,由新类型创建的所有的对象将动态添加这个属性!还拿Tiger类来说吧

Tiger.prototype.weight = function (){
alert(this.weight);
}
oTiger.weight();//这个也是成立的!!

是不是和java中的继承非常像呢!是的,但是,prototype属性并不单为了继承,继承并不是他的核心!至于为什么?我正在研究!!!待续!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-8 13:15 , Processed in 0.352137 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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