《JavaScript》——面向对象与原型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了《JavaScript》——面向对象与原型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1647字,纯文字阅读大概需要3分钟。
内容图文
![《JavaScript》——面向对象与原型](/upload/InfoBanner/zyjiaocheng/1316/6c886aff22b34c259e67a24bc71d57cf.jpg)
谈到面向对象,我们之前学过Vb和C#,从抽象到封装再到继承和多态,面向对象的世界真的很好玩,但是JavaScript中的面向对象有些特殊,因为里面没有类,而且对象的创建方式也不同。
对象的创建大约有四种方式:使用new关键字创建、使用字面量创建、使用工厂方法创建、使用构造函数创建。
1、使用new关键字
var box = new Object(); //创建一个 Object 对象 box.name = 'Lee'; //创建一个 name 属性并赋值 box.age = 100; //创建一个 age 属性并赋值 box.run = function () { //创建一个 run()方法并返回值 return this.name + this.age + '运行中...'; }; alert(box.run()); //输出属性和方法的值2、使用字面量创建
var box ={ name:'帅哥', age:'25', run :function(){ return this.name+"的年龄是"+this.age } } alert(box.run());3、使用自定义函数创建(工厂模式)
function createObject(name,age){ var obj=new Object(); obj.name=name; obj.age=age; obj.run=function(){ return this.name+this.age; }; return obj; };
4、使用构造函数创建
function Box(name,age){ this.name=name; this.age=age; this.run=function(){ return this.name+this.age+'看我......'; }; };4、四种方式的比较
四种方式创建对象各有利弊,new关键字与字面量方式比较起来,使用字面量方式在创建对象的时候添加属性和方法比较简单,方便。但是对于创建更多类似的对象的时候,上面两种方式就变得繁琐起来,因为对象需要一个个的创建后再添加属性和方法太麻烦了,这时候工厂模式方法就出来了,使用工厂模式方法,解决了创建多个类似对象声明的问题,但是它无法区分实例从属于哪个对象,例子如下所示。
var box = createObject('帅哥', 20); alert(box1 instanceof Object); //返回true,只能判断它从属于Object问题出现了,总有解决办法吧!这时候,构造函数创建对象的方法就登台了,使用构造函数的方法,即解决了重复实例化的问题,又解决了对象识别的问题。代码如下。
var box= new Box('美女', 20); alert(box instanceof Box); //返回true,很清晰的识别box从属于 Box构造函数方法与工厂模式方法比较起来,构造函数方法没有显示的创建对象(没有var box = new Object()),直接将属性和方法赋值给this对象,还没有Return语句(Return obj)。这些没有的东东在使用构造函数创建对象的时候是后台自动运行的,是不是很省劲儿?
5、构造函数与普通函数的区别
声明:构造函数首字母需要大写,主要目的是为了好区分。
调用:使用new 关键字调用,var box = new Box(‘美女‘, 20);
小结
四种声明创建对象的方式层层递进,都是伴随着问题的升级而出现的,在这里我想到了金庸小说里的一句话“英雄是随着时代产生的”,映射到对象创建这个问题上来,方法是伴随着问题产生的。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/zhoukun1008/article/details/47334209
内容总结
以上是互联网集市为您收集整理的《JavaScript》——面向对象与原型全部内容,希望文章能够帮你解决《JavaScript》——面向对象与原型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。