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,里面判断深浅拷贝,然后每个对象都添 ...
随机推荐
- java 加密工具(产生证书)
给Tomcat服务器应用加密: 命令:keytool -genkey -alias tomcat -keyalg RSA -genkey产生密钥对 -alias取得别名 -keyalg RSA产生密钥 ...
- Mysql 监视工具
对于开发人员来说,最头大的莫过于 ,你本地没事,线上 错误日志一堆. 尤其是数据库通信那一层.SqlServer 有 sql profile 用来监视对应的server上的通信日志,参数 命令等信息. ...
- 封装UIlabel 辨别用户名 ,话题 ,链接,电话,高亮文字等
概述 对UIlabel进行封装 用于辨别用户名 ,话题 ,链接,电话,高亮文字等,链接跳转网页,电话点击拨打电话,完美封装UIlabel,适合绝大多数需求 详细 代码下载:http://www.dem ...
- MSSQL-SQL SERVER 2008安装教程
运行setup.exe 选择“安装”菜单,点击“全新安装或向现有安装添加功能. 环境检测通过,点击“确定”: 不用修改产品密钥,点击“下一步”: 点击“下一步”: 根据您的实际情况选择响应的组 ...
- Ubuntu12.04设置屏幕分辨率
Ubuntu屏幕分辨率设置 Table of Contents 1 概述 2 设置前 3 设置 4 参考 1 概述 我的Ubuntu12.04不知道被我怎么折腾了一番,屏幕的分辨率错乱了,没有办法找到 ...
- this.class.getClassLoader().getResourceAsStream与this.class.getResourceAsStream
本文部分转自:http://xixinfei.iteye.com/blog/1256291 this.getClass().getClassLoader().getResource("tem ...
- shell脚本条件判断
http://blog.csdn.net/ws_zll/article/details/7515310
- Android开发学习之数据存取
Android系统中提供了一种文件读写的方法,可以将一些数据以文件的形式保存在设备中.比如一些word文档,PDF文档,图片,音频,视频文件等. 使用文件读写方法的步骤: 1.调用Context.op ...
- 利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
最近正在进行项目服务的移植工作,即将JAVA服务的程序移植到DotNet平台中. 在JAVA程序中,有个HTTP请求数据头中,包含一个BASE64编码的字符串,例如: eJyVjMENgDAMA1fp ...
- 【php】基础学习1
其中包括php基础.字符串和正则表达式的学习.具体如下: <html xmlns=http://www.w3.org/1999/xhtml> <head> <meta h ...