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 多态的好处
/* 对象的多态性. class 动物{} class 猫 extends 动物{} class 狗 extends 动物{} 猫 x = new 猫(); 动物 x = new 猫();//一个对象 ...
- 关于LoadRunner的迭代
通过用lr做负载压力测试过程发现,如果设定不同的action迭代次数,每次得出的结果是不同的,曲线的表现形式也是不同的.这点就使我们会感觉困惑,为什么要设置action的迭代次数?以及对于不同的应用系 ...
- 图文例解C++类的多重继承与虚拟继承
文章导读:C++允许为一个派生类指定多个基类,这样的继承结构被称做多重继承. 在过去的学习中,我们始终接触的单个类的继承,但是在现实生活中,一些新事物往往会拥有两个或者两个以上事物的属性,为了解决这个 ...
- php新特性:trait 关键字使用
1.trait关键字:含义[特性] 1.1 和require include 区别: 后两者需要 实例化一个类或者静态调用,而trait相当于继承,但又不是extends关键字,它解决了单继承. 2. ...
- Spring MVC request flow
1. When we enter a URL in the browser, the request comes to the dispatcher servlet.The dispatcher se ...
- WPF基础学习第一天
格式 1.XAML格式: <Button x:Name="btnClick" Content="按钮" HorizontalAlignment=" ...
- MFC异常处理的问题
参考文献:http://technet.microsoft.com/zh-cn/library/t078xe4f(v=vs.85).aspx MFC中异常处理的语法和语义构建在标准C++异常处理语法和 ...
- RabbitMQ消息队列(五):Routing 消息路由[转]
上篇文章中,我们构建了一个简单的日志系统.接下来,我们将丰富它:能够使用不同的severity(严重程度)来监听不同等级的log.比如我们希望只有error的log才保存到磁盘上. 1. Bindin ...
- Python练习笔记——对输入的数字进行加和
请您输入数字,每个数字采用回车结束,当您输入型号*时,则结束数字输入,输出所有数字的总和 def num_sum(): i = 0 while True: get_num = input(" ...
- -174dBm的含义
常温下(290K)一个热电阻会产生少量的噪声能量P=kTB k = 玻尔兹曼常数(1.38 x 10–23 J/K)T = 温度(K)B = 噪声带宽(Hz) 由于总噪声功率是测量带宽的函数,数值通常 ...