JavaScript高级 面向对象(1)--添加一个div标签
说明(2017.3.28):
1. JavaScript是一种基于对象的多范式编程语言,不是面向对象,但离开对象不能活。
范式编程是指编程习惯、方式,分为过程式、对象式和函数式编程。
2. 面向对象是指,使用对象进行开发,面向对象是对面向过程的封装。
3. JavaScript面向对象的三个特点,抽象性、继承性和封装性。
抽象性是指,抽取出核心属性和方法,不在特定条件下不能确定对象的具体意义。
继承性是指,把我没有的属性和方法拿来使用,并变成自己的属性和方法。
封装性是指,把方法和属性打包成一个对象。
4. JavaScript的对象就是键值对的集合。
键值是数据(基本数据,复合数据,空数据),就叫属性。
键值是函数,就叫方法。
5. 例子是在body里面添加一个div并设置样式。
第一次,采用过程的方法,先添加div,再分别设置样式。
第二次,采用面向对象的方法,把创建出来的div作为一个属性DOM,添加div到body作为方法appendTo(),设置样式作为方法css()。
第三次,将css()的参数设置为json格式对象,只要调用一次css()方法就可以了。
第四次,每个方法最后返回this,实现像jquery一样的链式编程。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body> </body>
<script type="text/javascript">
// 画一个div框
// 过程的方法
// var divTag = document.createElement("div");
// divTag.style.border = "1px solid red";
// divTag.style.width = "200px";
// divTag.style.height = "100px";
// divTag.style.backgroundColor = "pink";
// document.body.appendChild(divTag);
// 面向对象的方法
var DivTag = function(){
this.DOM = document.createElement("div")
this.appendTo = function(){
document.body.appendChild(this.DOM)
return this;
};
// 注意,此处for in循环对于json来说,i是键名,而不是索引
this.css = function(option){
for(var i in option){
this.DOM.style[i] = option[i];
}
return this;
// this.DOM.style[name] = value;
};
}; var divTag = new DivTag();
divTag.appendTo();
divTag.css({border:"1px dotted blue",width:"100px",height:"100px"});
divTag.appendTo().css({border:"3px dotted yellow",width:"100px",height:"100px"});
// divTag.css("border","1px solid red");
// divTag.css("width","200px");
// divTag.css("height","200px");
</script>
</html>
JavaScript高级 面向对象(1)--添加一个div标签的更多相关文章
- JavaScript高级 面向对象(5)--内存逻辑图画法
说明(2017.3.30): 1. 使用软件diagram designer,DiagramDesignerSetup1.28.zip,很小只有1M多,我用的自带画图软件.教学视频是“JavaScri ...
- 使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹
使用yii的layout,加入<?php echo $content; ?>这句话时,它会自动在子页面上面添加一个div包裹,而且div的id命名为id=content,这个和已有id重复 ...
- JavaScript高级 面向对象(10)--onload与jq中ready的区别
说明(2017.4.2): 1. 在body中放一个img标签,src链接一张图片,那么页面会先读取html的document文档,然后再读取外部资源(这里没加onload其实就是从上往下顺序读取). ...
- JavaScript高级 面向对象(8)--浅拷贝代码实现
说明(2017.3.31): 1. 浅拷贝,只有值属性,没有引用属性. 2. 在原对象里面添加一个copy方法,返回本对象内的所有值属性. <!DOCTYPE html> <html ...
- JavaScript高级 面向对象的程序设计 (一)《JavaScript高级程序设计(第三版)》
创建对象 继承 面向对象的语言都有一个表示---类.通过类我们可以创建多个具有相同属性的对象.但是,在JS中并没有类的概念,所以JS的对象也和其他语言的对象不同. 对象的定义:无序的属性集合,其属性可 ...
- JavaScript高级 面向对象的程序设计 (二)《JavaScript高级程序设计(第三版)》
二.继承 OO是面向对象语言最为有魅力的概念.一般的OO语言都实现了两种继承,接口继承和实现继承.接口继承只继承方法签名,而实际继承继承了实际的方法. 而在JS中,函数没有签名,所以无法实现接口继承. ...
- JavaScript高级 面向对象(13)--构造函数的执行过程
说明(2017-4-2 21:50:45) 一.构造函数是干什么用的: 1. 初始化数据的. 2. 在js给对象添加属性用的,初始化属性值用. 二.创建对象的过程: 1. 代码:var p = new ...
- JavaScript高级 面向对象(11)--对象的动态特性-关联数组用法
说明(2017.4.2): 1. 对象的动态特性: (1)在js中,一个对象需要属性,就可以利用“对象名.属性 = 值”的方式为其添加,只要赋值成功,对象就新增这个属性. (2)对象属性的访问形式: ...
- JavaScript高级 面向对象(9)--深拷贝代码实现
说明(2017.4.1): 1. 深拷贝要把对象里的“方法”也复制一份出来,“方法”里的“方法和属性”再判断深浅进行拷贝. 2. 办法就是写一个函数deepCopy,里面判断深浅拷贝,然后每个对象都添 ...
随机推荐
- spring注解 di 和 ioc 注解
注解: 1.注解就是为了说明java中的某一个部分的作用(Type) 2.注解都可以用于哪个部门是@Target注解起的作用 3.注解可以标注在ElementType枚举类所指定的位置上 4. @Do ...
- 奇葩属性:layout_weight 的解释及使用
在Android的控件布局中,有一个奇葩的 layout_weight 属性,定义如下: layout_weight : 用于指定剩余空闲空间的分割比例.用法: 01 <LinearLayout ...
- Android学习系列(9)--App列表之分组ListView
吸引用户的眼球,是我们至死不渝的追求: 第一时间呈现最有价值的信息,简明大方,告诉客户,你的选择是多么的明智,这正是你寻觅已久的东西. 分组的应用场合还是很多的,有数据集合的地方 ...
- RabbitMQ消息队列(六):使用主题进行消息分发[转]
在上篇文章RabbitMQ消息队列(五):Routing 消息路由 中,我们实现了一个简单的日志系统.Consumer可以监听不同severity(严重级别)的log.但是,这也是它之所以叫做简单日志 ...
- SQL Server里面导出SQL脚本(表数据的insert语句)
转载自:http://hi.baidu.com/pigarmy/blog/item/109894c445eab0a28326ac5a.html 最近需要导出一个表的数据并生成insert语句,发现SQ ...
- 文件描述符file descriptor与inode的相关知识
每个进程在Linux内核中都有一个task_struct结构体来维护进程相关的 信息,称为进程描述符(Process Descriptor),而在操作系统理论中称为进程控制块 (PCB,Process ...
- SSH2框架实现注冊发短信验证码实例
这两天開始写程序了,让用SSH2框架,曾经没有接触过Java项目更没有接触过SSH2框架,所以用注冊開始了我Java之旅.后来发现,后台代码挺easy理解的,跟.net的差点儿相同.就是层与层之间的调 ...
- mysql 5.7安装教程
一.mysql下载地址 https://downloads.mysql.com/archives/installer/ 说在前面的话 我为什么已经尝试和使用过同类型产品的很多MySQL版本,还要书写 ...
- Linux下的MongoDB安装配置以及基本用法示例
一 MongoDB的安装配置 (1)下载并安装: MongoDB安装包下载地址:https://www.mongodb.com/download-center [root@localhost src] ...
- Spring Bean的生命周期详解(转)
Spring作为当前Java最流行.最强大的轻量级框架,受到了程序员的热烈欢迎.准确的了解Spring Bean的生命周期是非常必要的.我们通常使用ApplicationContext作为Spring ...