面向对象三要素: 封装 继承 多态 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…
一.工厂模式创建对象及优缺点 继承就是把公共的部分抽象出来作为父类,基类.吃饭,跑步等 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.面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象简单的来说,无非就是使用内置对象或各种自定义对象,当然还可以使用JSON,但写法有很多,也能混合使用. 1.工厂方式创建对象:面向对象中的封装函数(内置对象) function createPerson(name){ //1.原料 var obj=new Object(); //2.加工 obj.n…
需要注意的问题: 1.其他模块若是使用构造函数MP3创建对象,唯一不同的就是他们传入的音乐库是不一样的,所以构造函数中存在一个songList属性,其他一样的就被添加到了构造函数的原型对象之中 2.原型对象是直接替换的,所以会失去constructor属性,我们最好给这个属性重新赋值 3.我们new的过程中,就可以将传入的音乐库进行提取然后渲染到浏览器上,所以在属性中我们在new过程中就去执行render()方法 4.还有在CURD的方法调用中,只要修改了原来的songList库就必须再次调用r…
把方法包在一个Json里 var p1 = { name: "唐三", sex: "男", dreamdu: { URL: "www.dreamdu.com", name: "梦之都", author: "monkey", say: function() { document.write(this.name + " say hello") } //允许嵌套 }, showName: fu…
注意事项 1.给li元素注册事件,函数里面的this指的li元素,那么我们可以在注册事件之前将Tab对象用that=this进行保存 2.使用沙箱模式,所以暴露给外面的变量使用的是window.tab,将window作为参数传递进去 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title>…
<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…
定义和用法 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…
面向对象的编程思想(贪吃蛇梳理) 模拟贪吃蛇游戏,做的项目 地图: 宽,高,背景颜色,因为小蛇和食物都是相对于地图显示的, 这里小蛇和食物都是地图的子元素, 随机位置显示, 脱离文档流的, 地图也需要脱离文档流--css需要设置:宽, 高, 背景颜色, 脱标 食物---div元素 elements--->存储div的数组(将来删除的食物div时候, 先从map中删除div, 再从数组中移除div) 食物: 宽, 高, 背景颜色, 横坐标, 纵坐标 一个食物就是一个对象, 这个对象有相应的属性,…
改写: 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…
//工厂方式:封装函数function test(name) { var obj = new Object(); obj.name = name; obj.sayName = function () { alert(this.name); }; //抛出 return obj;}var p1 = test('小明');p1.sayName();var p2 = test('小王');p2.sayName();//优化//创建对象要注意首字母大写//当new去调用一个函数:这个时候函数中的this…
JS面向对象编程(转载) 什么是面向对象编程(OOP)?用对象的思想去写代码,就是面向对象编程. 面向对象编程的特点 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有对象上继承出新的对象 多态:多对象的不同形态 对象的组成 属性:对象下面的变量叫做对象的属性 方法:对象下面的函数叫做对象的方法 var arr = []; arr.number = 10; //对象下面的变量:叫做对象的属性 //alert( arr.number ); //alert( arr.length );…
https://www.cnblogs.com/sandraryan/ 什么是对象 js中一切都是对象(有行为和特征).js允许自定义对象,也提供了内建对象(string date math等) 对象拥有属性和方法.属性是本身的特征,如 车的颜色,型号. 方法是可执行的操作.如,车可以代步 如数组length是属性,pop push是方法 (直接调用的是函数,通过对象调用的是方法) 对象的作用:封装一些信息 面向对象:可以创建自定义的类型,很好的支持继承和多态c++ ,java等 基于对象:不可…
1.面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 注:本文引用于 http://www.cnblogs.com/yuxingyoucan/p/5797142.html 一.创建对象的几种方式 javascript 创建对象简单的来说,无非就是使用内置对象或各种自定义对象,当然还可以使用JSON,但写法有很多,也能混合使用. 1.工厂方式创建对象:面向对象中的封装函数(内置对象) function cr…
JS高级---三种创建对象的方式 字面量的方式 (实例对象) 调用系统的构造函数 自定义构造函数方式 //创建对象---->实例化一个对象,的同时对属性进行初始化 var per=new Person("小红",20); 自动逸构造函数创建对象做的事情:   1.开辟空间存储对象   2.把this设置为当前的对象   3.设置属性和方法的值   4.把this对象返回 //实例对象 var per1 = { name: "小明", age: 20, sex:…
工厂方式 //工厂方式 : 封装函数 function createPerson(name){ //1.原料 var obj = new Object(); //2.加工 obj.name = name; obj.showName = function(){ alert( this.name ); }; //3.出场 return obj; } var p1 = createPerson('小明'); p1.showName(); var p2 = createPerson('小强'); p2.…
面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念.long long ago,js是没有类的概念(ES6推出了class,但其原理还是基于原型),但是它是基于原型的语言,可以通过一些技巧来让他属于类的用法. 我们先建个最简单的对象: var person = new Object(); person.name = "cjh"; person.age = 22; person.sayName = function () { //this.name…
二.继承 OO是面向对象语言最为有魅力的概念.一般的OO语言都实现了两种继承,接口继承和实现继承.接口继承只继承方法签名,而实际继承继承了实际的方法. 而在JS中,函数没有签名,所以无法实现接口继承.只能依靠原型链--实现继承. 2.1原型链 JS中描述了原型链的概念,并利用原型链作为实现继承的主要方法. 其基本思想:利用原型链让一个引用类型继承另一个引用类型的属性和方法. functionSuperF(){ this.superPropty ='B'; } SuperF.prototype.g…
最近一直在看JS高级程序设计这本书,有空来梳理一下几种创建对象的方式.话不多说,直接步入正题. 第一种:Object构造函数创建 var Person = new Object();Person.name = 'Nike';Person.age = 29; 这行代码创建了Object引用类型的一个新实例,然后把实例保存在变量Person中. 第二种:使用对象字面量表示法 var Person = {};//相当于var Person = new Object();var Person = { n…
avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工厂方式 3.构造函数方式 4.原型("prototype")方式 5.动态原型方式 一.基于已有对象扩充其属性和方法   <script type="text/javascri…
我觉得js的难点之一就是面向对象编程. 面向对象 它是一种编程思想,它在写法上比面向过程相对来说复杂一些: 以下是我学习中关于面向对象的知识点总结:   1.什么是对象 从广义上说,"一切皆对象":狭义上说,是一种复合数据类型Object. 对象可以添加属性(变量)与方法(函数) .创建对象的方法 ①:直接字面量  {} var person={ name:'jackson', age:30, sing:function(){ console.log('beat it'); } };…
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 a.在前面的章节中,我们创建对象的方式有两种:new Object() 和 对象字面量: //1.new Object() 创建对象 var person1 = new Object(); person1.name = "ry"; person1.age = 21; //2.对象字面量 v…
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 a.在前面的章节中,我们创建对象的方式有两种:new Object() 和 对象字面量: //1.new Object() 创建对象 var person1 = new Object(); person1.name = "ry"; person1.age = 21; //2.对象字面量 v…
一.函数高级 1.函数回调 函数回调的本质:在一个函数中,满足特定条件下,调用另一个函数 // 回调的函数 function callback(data) {} // 逻辑函数 function func(callback) { // 函数回调 if (callback) callback(data); } function a_fn(data) { console.log('a_fn'); // 如果要使用数据,那么定义形参接收参数 console.log(data); } function…
JS式面向对象 一.理解对象 一)属性类型 ECMA-262 第 5 版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征. ECMA-262 定义这些特性是为了实现 JavaScript 引擎用的,因此在 JavaScript 中不能直接访问它们. 1.数据属性 数据属性包含一个数据值的位置.在这个位置可以读取和写入值.数据属性有 4 个描述其行为的特性.  [[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修…
第二章:Ext.js高级组件 grid组件 普通方式 表格面板类Ext.grid.Panel xtype(别名):gridpanel.grid title标题.renderTo渲染至.width宽.height高 frame : Boolean 是否填充渲染gridpanel forceFit : true 列是否自动填充 store : store 数据集 tbar: [] 头部工具栏 dockedItems : Object/Array 可定位的停靠工具条(上.下.左.右) selType…
JS高级 1. 访问对象属性(方法也是属性)的通用方式:obj['属性名'] 1. 属性名包含特殊字符,如"-".空格,访问:obj['content-type'] 2. 属性名不确定:var name='age'; var value=18; obj[name]=value 2. IIFE:立即执行函数,用于隐藏实现.避免污染全局命名空间.编写JS模块 (function(){ ... })() ---> 即匿名函数自调用 3. this的指向 1. 任何函数本质上都是通过某个…
阶段目标 主要学习 JS 的面向对象编程思想. 对象 概念 在编程领域,任何 事 和 物都可以概括成对象. 对象概念练习 用编程思想抽象出你心仪对象的属性和方法. 对象由属性和方法组成,属性和方法都可以用 键值对 定义. 心仪对象: 属性:特征 身高:150 cm 年龄:36 性别:女 腿:大长腿 方法:功能 - 函数 生活技能:煮饭 运动技能:打篮球 艺术技能:rap <!DOCTYPE html> <html lang="en"> <head>…
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工厂方式 3.构造函数方式 4.原型(“prototype”)方式 5.动态原型方式 一.基于已有对象扩充其属性和方法 <script type="text/javascript"> var object = new Object(); object.name = "z…
一.面向对象编程(继承) 这篇博客是面向对象编程的第三篇,JS继承.继承顾名思义,就是获取父辈的各种"财产"(属性和方法). 怎么实现继承? 我们的JavaScript比较特别了,主要通过原型链实现继承的. 下面介绍各种实现继承的方式:原型链继承,借用构造函数,组合继承,原型式继承,寄生式继承,寄生组合式继承. 二.实现继承方式 1.原型链方式 原型我们都知道,每个构造函数都有一个原型对象(prototype),用于存放共享的属性方法. 原型链继承原理:我们要继承一个父类,那就把这个子…