HTML 学习笔记 May 12,2017 JS 面向对象三大特征(封装、继承、多态)、多态经典案例、补讲闭包细节、js内部类、js系统函数、js事件驱动机制、js事件分类、js访问css技术

HTML 学习笔记 May 12,2017 JS 面向对象三大特征(封装、继承、多态)、多态经典案例、补讲闭包细节、js内部类、js系统函数、js事件驱动机制、js事件分类、js访问css技术

js 面向对象编程的三大特性,
① 封装
通过prototype 给所有的对象和方法,但是这种方式,不能访问类的私有变量和方法。

② 继承
解决代码冗余问题

function Stu (name,age) {
this.name = name;
this.age = age;
this.show = function() {
window.alert(this.name + " " + this.age);
}
}

function MidStu (name,age) {
this.stu = Stu;
this.stu(name,age); // js 中实际上是通过对象冒充,来实现继承,这句话不能少
}

function Pupil (name,age) {
this.stu = Stu;
this.stu(name,age);
}

var midStu = new MidStu("doudou",20);
midStu.show();

现在来看一个多态的栗子🌰

function Master () {
// 给动物喂食
this.feed = function (animal,food) {
document.write("主人给" + animal.name + "喂" + food.name);
}
}
// 写食物
function Food(name) {
this.name = name;
// ...
}
// 鱼
function Fish(name) {
this.food = Food;
this.food(name);
}
// 骨头
function Bone(name) {
this.food = Food;
this.food(name);
}
// 动物
function Animal(name) {
this.name = name;
// ...
}
// 猫
function Cat(name) {
this.animal = Animal; // 对象冒充
this.animal(name);
}
// 狗
function Dog(name) {
this.animal = Animal;
this.animal(name);
}

var cat = new Cat("小猫咪");
var dog = new Dog("小狗");
var fish = new Fish("小鱼");
var bone = new Bone("骨头");

var master = new Master();
master.feed(cat,fish); // 主人给小猫咪喂小鱼
master.feed(dog,bone); // 主人给小狗喂骨头

闭包

// 闭包
function A() {
var i = 0;
function b() {
window.alert(i++);
}
return b;
}
// 闭包<--->gc 是个垃圾回收机制相关联的一个概念
A(); // 调用完之后 i 会被回收
A(); //
var c = A(); // 调用完之后 i 不会被回收
c(); // 0
c(); // 1

① 闭包和 gc(垃圾回收机制) 是相关联的
② 闭包实际上是涉及到一个对象的属性,何时被 gc 处理问题
③ 怎样才能对对象的属性形成一个闭包

内部类的分类:
从使用的方式看:分为静态类和动态类。

静态类的使用:类名.属性/方法
动态类:var 对象 = new 动态类()对象 属性/方法

Math 类
① abs(x) 返回数的绝对值
② ceil(x) 对一个数进行上舍入
③ floor(x) 对一个数进行下舍入
④ max(x,y) 求 x,y 中较大的数
⑤ min(x,y) 求 x,y 中较小的数
⑥ round(x) 对 x 进行四舍五入
⑦ random() 一个大于0 小于1 的16位小数位的数字

var date = new Date();
window.alert(new Date()); // Fri May 12 2017 15:06:45 GMT+0800 (CST)
window.alert(new Date().toLocaleString()); // 5/12/2017, 3:07:50 PM
window.alert(date);
window.alert(date.getYear() + " " + date.getMonth()); // 117 04 //这个时间有点奇怪,不知道是哪里出问题了

Date类
**********这里是截取字符串*********
var str = "abcd12345";

window.alert(str.length);

var str2 = "abc def oop";
var arr = str2.split(" "); // 如果("")就是一个一个分
window.alert(arr);

var str3 = "abcdef";
window.alert(str3.substr(1,3)); // bcd 从坐标 1 开始 截取 3 个数
window.alert(str3.substring(1,3)); // bc 从坐标 1 到 3

String 类

var str = "abcd12345";

window.alert(str.length);

var str2 = "abc def oop";
var arr = str2.split(" "); // 如果("")就是一个一个分
window.alert(arr);

var str3 = "abcdef";
window.alert(str3.substr(1,3)); // bcd 从坐标 1 开始 截取 3 个数
window.alert(str3.substring(1,3)); // bc 从坐标 1 到 3

var str4 = "abcd";
window.alert("chart" + str4.charAt(3)); // chartd

var str5 = "ab 123 56 ab";
window.alert("indexof" + str5.indexOf("ab",1)); // indexof10

Array 类

var myarr = new Array();
// 动态的添加数据
myarr[0] = "sp";
myarr[1] = 90;
window.alert(myarr.length + " " + myarr); // 2 sp 90
myarr.pop(); // 出栈
window.alert(myarr.length + " " + myarr); // 1 sp
myarr.push("abcd");
window.alert(myarr.length + " " + myarr); // 2 sp abcd

Number 类

① toString () 把一个Number 对象转换为一个字符串,并返回结果。
② toFixed() 把数字转换为字符串,结果的小数点后有指定位数的数字。// 这个是四舍五入的

js 系统函数-- 常用系统函数
1、eval() // 可以把一个字符串当作脚本来运行,用处很大;
2、isNaN() // 判断某个值是不是数(该函数不是特别完美) ;

屏幕快照 2017-05-20 11.21.46.png

鼠标事件:
当用户在页面上用鼠标点击页面元素时,对应的 dom 节点会触发鼠标事件。主要有 click 、dblclick、mousedown、mouseout、mouseover、mouseover、mouseup、mousemove等
键盘事件:
当用户用键盘输入信息时,会触发键盘操作事件。主要包括keydown、keypress、keyup三个。
HTML 事件:
在 html 节点加载变更等相关的事件,比如window的onload、unload、abort、error,文本框的select、change等等。
其他事件:
页面中的一些特殊对象运行过程中产生的事件,比如xmlhttp request 对象的相关事件。
这个包括ajax事件,O(∩_∩)O哈哈~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • HTML 学习笔记 May 11,2017 构造函数、成员函数详解、object类、闭包、成员函数再说明、聪明的猪...
    管乐_VICTOR阅读 317评论 0 3
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,718评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,056评论 1 10
  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,640评论 0 6
  • 回到了教室里 考一节政治考试 林近考试才发现最重要的东西眼镜没带 紧忙跑回教室桌子拿眼镜 回来考试时监考老师还在那...
    小小面阅读 217评论 0 0