首页 > 代码库 > javascript对象(1)
javascript对象(1)
今天说面向对象,嗯,不是那个对象,是这个对象。
接下来就开始今天的内容:
什么是面向对象:
就是把数据及数据的操作方法放在一起,作为一个相互依存的整体----对象。对同类对象抽象出其共性,形成类。
类中的大多数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。
名词解释:
基于对象:一切皆对象,以对象的概念来编程。
面向对象编程:
对象:就是人们要研究的事物,不仅能表示具体事物,还能表示抽象的规则,计划或事件。
属性的无序集合,每个属性可以存一个值(原始值,对象,函数)
对象的属性和行为:
属性:用数据值来描述他的状态
行为:用来改变对象行为的方法
类:
具有相同或相似的性质的对象的抽象就是类。对象的抽象,就是类。累的具体化就叫做对象。
说了面向对象,就说一下面向过程:
自顶向下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;
每一模块内部均是由顺序、选择和循环三种基本结构组成;
其模块化实现的具体方法就是使用程序。程序流程写在程序是就已决定。
说了这么多概念性的问题,还是有点模糊,下面来写相关对象的一届方法:
1、创建对象
(1)直接量
不如创建一个狗狗的对象,代码如下:
var dog = {
//添加name属性 name : "Td",
//添加叫的方法 say : function (){ document.write("汪汪汪"); } }
(2)工厂模式
1 <script> 2 //用工厂模式,先要确定创建对象的属性和方法 3 //列如:创建摩拜单车,先要确定其属性和方法 4 //属性:名字 价钱 二维码 颜色 锁 5 //方法 : 跑 6 function createObj(name,price,code){ 7 //创建对象 8 var obj = new Object(); 9 obj.name = name; 10 obj.price = price; 11 obj.code = code; 12 obj.color = "yellow"; 13 obj.run = function(){ 14 alert(this.name+"开始出发"); 15 } 16 //在对象里,要使用对象的属性或方法,要用this.属性或this.方法。 17 18 //返回对象 19 return obj; 20 } 21 //调用工厂函数 22 var a = createObj("摩拜单车1",1,101); 23 var b = createObj("摩拜单车2",1,102); 24 var c = createObj("摩拜单车3",1,103); 25 26 a.run(); 27 28 alert(a.name + "价钱" + a.price+"元"); 29 </script>
(3)构造函数
1 <script> 2 //构造函数 (又名 初始函数):用来创建对象的 3 4 //develop:开发 5 //【注意】1、构造函数名 第一个字母 一定要 大写 6 // 2、构造函数没有返回值 7 //this : 表示当前, 指向的是自己本身 8 9 function Game(name,personCount,develop){ 10 this.name = name; 11 this.personCount = personCount; 12 this.develop = develop; 13 this.play = function(){ 14 alert("我是"+this.name+"游戏"+"我的玩家数量是:"+this.personCount); 15 } 16 } 17 18 //构造函数不返回对象是因为 关键字new 19 //new 关键字创建对象并返回对象 20 var Lol = new Game("Lol","1000万","拳头"); 21 Lol.play(); 22 var Cf = new Game("cf","3亿","三星"); 23 Cf.play(); 24 //instanceof 判断一个对象他父亲是谁 25 alert(Lol instanceof Game); 26 //Lol instanceof Game true 27 //Lol instanceof Object true 28 29 </script>
说一下构造函数和工厂模式的区别:
构造函数名首字母大写,与工厂模式区别开;
构造函数内部使用this关键字;
构造函数没有返回值,工厂模式需要返回值;
今天就这样,明天续更。。。。
javascript对象(1)