需要注意的问题: 1.其他模块若是使用构造函数MP3创建对象,唯一不同的就是他们传入的音乐库是不一样的,所以构造函数中存在一个songList属性,其他一样的就被添加到了构造函数的原型对象之中 2.原型对象是直接替换的,所以会失去constructor属性,我们最好给这个属性重新赋值 3.我们new的过程中,就可以将传入的音乐库进行提取然后渲染到浏览器上,所以在属性中我们在new过程中就去执行render()方法 4.还有在CURD的方法调用中,只要修改了原来的songList库就必须再次调用r…
注意事项 1.给li元素注册事件,函数里面的this指的li元素,那么我们可以在注册事件之前将Tab对象用that=this进行保存 2.使用沙箱模式,所以暴露给外面的变量使用的是window.tab,将window作为参数传递进去 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>…
一.工厂模式创建对象及优缺点 继承就是把公共的部分抽象出来作为父类,基类.吃饭,跑步等 var a = {}; //批量创建不方便,不能重复设置公共属性的代码 //工厂模式出现了,创建10个Cat对象 每个对象都有年龄.姓名的属性,包括run方法 注意区分 js高级-函数的四种调用模式 function createCat(age,name){ var o = new Object(); o.age = age; o.name = name; o.run = function (){ conso…
面向对象三要素: 封装 继承 多态 1.this 详解,事件处理中this的本质 window this -- 函数属于谁 <script type="text/javascript"> var arr=[12,65,87]; //this:当前的方法,属于谁 arr.show =function (argument) { // body... console.log(this); //[12,65,87] } arr.show(); function show(){ co…
把方法包在一个Json里 var p1 = { name: "唐三", sex: "男", dreamdu: { URL: "www.dreamdu.com", name: "梦之都", author: "monkey", say: function() { document.write(this.name + " say hello") } //允许嵌套 }, showName: fu…
<script type="text/javascript"> //------------------Person类 //(Person)的构造函数 function Person(name, sex) { this.name = name; this.sex = sex; } Person.prototype.showName = function() { console.log(this.name) }; Person.prototype.showSex = func…
改写: 1.前提:所有东西都在 onload 里 2.改写:不能有函数嵌套,可以有全局变量 onload --> 构造函数 全局变量 --> 属性 函数 --> 方法 4.改错: this this啥时候会出问题? 1.定时器 <script> function Aar() { this.a = 12; setInterval(this.show, 1000); //这里的this 是window } Aar.prototype.show = function() { con…
面向对象的编程思想(贪吃蛇梳理) 模拟贪吃蛇游戏,做的项目 地图: 宽,高,背景颜色,因为小蛇和食物都是相对于地图显示的, 这里小蛇和食物都是地图的子元素, 随机位置显示, 脱离文档流的, 地图也需要脱离文档流--css需要设置:宽, 高, 背景颜色, 脱标 食物---div元素 elements--->存储div的数组(将来删除的食物div时候, 先从map中删除div, 再从数组中移除div) 食物: 宽, 高, 背景颜色, 横坐标, 纵坐标 一个食物就是一个对象, 这个对象有相应的属性,…
定义和用法 prototype 属性允许您向对象添加属性和方法 注意: Prototype 是全局属性,适用于所有的Javascript对象. 语法 object.prototype.name=value <script> function employee(name,jobtitle,born){ this.name=name; this.jobtitle=jobtitle; this.born=born; } var fred=new employee("Fred Flintst…
增 数组.push() 删 数组.splice(开始删除索引,删除几个) 在当前对象中调用当前对象的方法中和属性,必须用this调用 nodeType判断节点类型 节点.nodeType ==  1:元素节点/2:属性节点/3:文本节点 concat 返回的是一个新的数组 封装歌曲列表管理(函数) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">…