初识面向对象的概念

先贴代码:

 1 /**
 2  * Created by Administrator on 2016/8/17.
 3  */
 4 (function () {
 5
 6     function createStudent(name,age,gender) {
 7         var student={name:name,age:age,gender:gender};
 8         student.createHTMLElement=function () {
 9             var div=document.createElement("div");
10             var a=document.createElement("a");
11             var btn=document.createElement("button");
12             btn.innerHTML="Close";
13             div.appendChild(btn);
14             a.innerHTML=student.name;
15             a.href="#";
16             a.onclick=function () {
17                 alert("姓名:"+student.name+"\n年龄:"+student.age+"\n性别:"+student.gender);
18             };
19             btn.onclick=function () {
20                 div.removeChild(a);
21                 div.removeChild(btn);
22             };
23             div.appendChild(a);
24             return div;
25         };
26
27         return student;
28     }
29
30     var students=[
31         createStudent("Dork",12,"female"),
32         createStudent("Tom",34,"female"),
33         createStudent("Lili",23,"male")
34
35     ];
36     for (var i = 0; i < students.length; i++) {
37         document.body.appendChild(students[i].createHTMLElement());
38     }
39 })();
40 //面向对象无非是,类里面套个方法,以后类里面的对象可以调用里面的方法

js

代码功能:点击人名出现信息。

代码稍作修改:

 1 /**
 2  * Created by Administrator on 2016/8/17.
 3  */
 4
 5 (function () {
 6
 7     function CreateStudent(name, age, gender) {
 8
 9         var self = {name: name, age: age, gender: gender};
10
11         self.getNode = function () {
12             return self.htmlNode;
13         };
14
15         function createHtmlNode() {
16             self.htmlNode = document.createElement("div");
17             var a = document.createElement("a");
18             a.innerHTML = self.name;
19             a.href = "#";
20             a.onclick = function () {
21                 alert("名字:" + self.name + "\n年龄:" + self.age + "\n性别:" + self.gender);
22             };
23             self.htmlNode.appendChild(a);
24             var closeBtn = document.createElement("button");
25             closeBtn.innerHTML = "Close";
26             self.htmlNode.appendChild(closeBtn);
27             closeBtn.onclick = function () {
28                 self.htmlNode.parentNode.removeChild(self.htmlNode);
29             }
30         }
31
32         function init() {
33             createHtmlNode();
34         }
35
36         init();
37
38         return self;
39     }
40
41     var students = [
42         CreateStudent("张三", 10, "男"),
43         CreateStudent("李四", 12, "男"),
44         CreateStudent("丽丽", 9, "女")
45     ];
46
47     console.log(students);
48
49     for (var i = 0; i < students.length; i++) {
50         var student = students[i];
51         document.body.appendChild(student.getNode());
52     }
53 })();

js

代码功能:点击消失。

进而引出继承的概念:

 1 /**
 2  * Created by Administrator on 2016/8/17.
 3  */
 4
 5 (function () {
 6
 7     function CreateStudent(name, age, gender) {
 8
 9         var self = {name: name, age: age, gender: gender};
10
11         self.getNode = function () {
12             return self.htmlNode;
13         };
14
15         function createHtmlNode() {
16             self.htmlNode = document.createElement("div");
17             self.htmlNode.style.backgroundColor="coral";
18             self.htmlNode.style.marginTop="5px";
19             var a = document.createElement("a");
20             a.innerHTML = self.name;
21             a.href = "#";
22             a.onclick = function () {
23                 alert("名字:" + self.name + "\n年龄:" + self.age + "\n性别:" + self.gender);
24             };
25             self.htmlNode.appendChild(a);
26             var closeBtn = document.createElement("button");
27             closeBtn.innerHTML = "Close";
28             self.htmlNode.appendChild(closeBtn);
29             closeBtn.onclick = function () {
30                 self.htmlNode.parentNode.removeChild(self.htmlNode);
31             }
32         }
33
34         function init() {
35             createHtmlNode();
36         }
37
38         init();
39
40         return self;
41     }
42
43     var students = [
44         CreateStudent("张三", 10, "男"),
45         CreateStudent("李四", 12, "男"),
46         CreateStudent("丽丽", 9, "女"),
47         boyStudent("王五", 13),
48         grilStudent("莎莎", 12)
49     ];
50
51     function boyStudent(name, age) {
52         var self = CreateStudent(name, age, "男");
53
54         self.sayHello = function () {
55             alert(self.name + "说,你好!波波");
56         };
57         self.htmlNode.onclick=function () {
58           self.sayHello();
59         };
60         return self;
61     }
62
63     function grilStudent(name, age) {
64         var self = CreateStudent(name, age, "女");
65         return self;
66     }
67
68     console.log(students);
69
70     for (var i = 0; i < students.length; i++) {
71         var student = students[i];
72         document.body.appendChild(student.getNode());
73     }
74 })();

js

当然js里面也可以实现方法重写,如常用的toString()

直接写a.toString()=funciton(){},它重写的是 alert()方法。

时间: 2024-10-25 00:46:54

初识面向对象的概念的相关文章

Day7 初识面向对象,面向对象之继承与派生

一.面向对象引言 一.面向对象的程序设计的由来 详述见:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二.面向对象引子 写一个简单程序:人狗大战 角色:人.狗 人角色特性:攻击力.生命值.名字.等级 狗角色特性:攻击力.生命值.名字.品种 1.用函数实现功能:角色和技能分别定义不同的函数 1 def person(attack,life_value,name,level): 2 person_dic = {'attack':att

python 初识面向对象

一.初识面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自

黑马程序员-----面向对象编程概念

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ----- 第一讲   面向对象编程概念 本小节知识点: 1.[了解]编程的实质是什么? 2.[掌握]面向对象的基本概念 类    包    接口      继承      多态 ( 面向过程是强调我们要做一件事情有哪些步骤, 面向对象是强调我们做一件事

面向对象基本概念整理

1.基本概念: 1.1 类与对象的初探 要我说,无论是面向过程的语言也好,面向对象的语言也罢,我首先要给他讲的都是类和对象!--------“这个世界是由什么组成的?”这个问题如果 让不同的人来回答会得到不同的答案.如果是一个化学家,他也许会告诉你“还用问嘛?这个世界是由分子.原子.离子等等的化学物质组成的”.如果是一个画家 呢?他也许会告诉你,“这个世界是由不同的颜色所组成的”.……呵呵,众说纷纭吧!但如果让一个分类学家来考虑问题就有趣的多了,他会告诉你“这个世界是 由不同类型的物与事所构成的

面向对象基本概念

面向对象基本概念 乔高峰  于深圳整理(2007-01-13) 面向对象(object-oriented ;简称: OO) 至今还没有统一的概念,我这里把它定义为:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析.设计.实现软件的办法.通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应. 面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Ori

JavaScript对象及初识面向对象

JavaScript对象及初识面向对象:

一:Java之面向对象基本概念

1.面向对象 面向对象(Object Oriented)是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象.类.继承.封装.多态等基本概念来进行程序设计.从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式. 什么是OOP? OOP,即是面象对象的编程,是与结构化编程相对的编程方式.不了解结构化编程也无碍.简单地看下周遭的世界,你就能找到点OOP的特质. 例如:一辆汽车,有轮子.发动机等基本设备,可以行驶

面向对象编程概念

如果你以前从来没有使用面向对象语言,你需要在开始编写JAVA代码之前先理解这个概念.你需要理解什么是对象.什么是类.对象和类的关系怎样以及使用消息怎样在对象之间进行通讯.本教程的前面部分将描述面向对象编程的概念,而后面的教程将教你怎样将这个概念编成代码. 2.1什么是对象 对象是一些相关的变量和方法的软件集.软件对象经常用于模仿现实世界中我们身边的一些对象.对象是理解面向对象技术的关键.你在学习之前可以看看现实生活中的对象,比如狗.桌子.电视.自行车等等.你可以发现现实世界中的对象有两个共同特征

8、python全栈之路-初识面向对象

八.初识面向对象 http://www.cnblogs.com/Eva-J/articles/7293890.html#_label1 1.楔子 #面向对象编程 #面向对象的思想 #对象就是一个实实在在的,可以准确描述出来的实体,比如说egg,alex #面向对象的编程是一种上帝视角的切换 #之前你使用的面向过程的编程是面向结果去编程,一个流水线下来有固定的结果 #好想  可扩展性差 容易引起代码的安全问题 #面向对象 #类:具有相同属性和方法的一类事物 #对象:具有具体的属性的事物 2.初识类