第1章 引言1.1 回顾历史1.2 变革之风1.3 分析现状1.4 展望未来1.5 面向对象的程序设计 1.5.1 对象(属性和方法的集合) 1.5.2 类 (相似对象的共同特征,如麻雀、老鹰都是鸟类) 1.5.3 封装 (将属性和方法集合起来,也有封闭作用域的概念,如封装一个播放器对象) 1.5.4 聚合 (将几个对象合并成一个对象) 1.5.5 继承 (一个实例对象继承父级对象的一些属性和方法) 1.5.6 多态 (一个对象调用其他对象的方法,...
JavaScript面向对象:* 函数:* Arguments对象的作用:实现模拟函数重载的效果* 变量的作用域* 全局域和函数域* 全局变量和局部变量* 全局变量:全局域和函数域* 局部变量:当前函数域* 定义局部变量时,不使用"var"* 定义全局变量与局部变量同名时* 特殊函数:在代码优化时* 匿名函数* 回调函数* 匿名回调函数* 自调函数* 内部(私有)函数* 返回函数的函数(扩展,了解)* 编写代码的建议:先实现逻辑代码,再做代码优化(误区:一次性将...
之前,我们完成了坦克的移动和地图的绘制,这次我们来完成碰撞检测和炮弹的发射。 上代码前来张最新的类图: 3. 碰撞检测 前面我们已经完成了坦克的移动和地图的绘制,下面我们开始写碰撞检测。3.1 创建碰撞检测对象 我们创建一个对象来做碰撞检测,由于碰撞检测都是在对象移动的时候进行的所以我们让Mover继承我们的碰撞对象。 HitTestObject.js: 1// 碰撞检测对象 继承自顶级对象 2 HitTestObject = function...
javaScript是一种比較特殊的语言,ECMAScript中没有类的概念。跟其它面向对象的语言有一定的差别。它的对象也与基于类的语言中的对象有所不同,严格来说,javascript对象是一组没有特定顺序的值,对象的每一个属性或方法都有一个名字。而每一个名字都映射到一个值。每一个对象都是基于一个引用类型的创建的。创建自己定义对象的最简单的方式就是创建一个Object的实例。然后再为其加入属性和方法,如:var box = new Object(); ...
第六章 面向对象的程序设计1、创建对象的几种方式 A)工厂模式 function CreatObj(name,sex,age){ this.name=name; this.sex=sex; this.age=age;} 缺点:虽然可以批量创建对象,却不能知道对象的类型 只知道他是Object类型;B)构造函数 function Person(name,sex){ this.name=name; this.sex=sex; this.sayName=function(){ alert(this.name);}} function Person(name,sex){ this.name=na...
<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>原生js面向对象选项卡(点击)</title><style>#div1 div{width:400px;height:300px;border:1px solid #ccc;overflow: hidden;display: none;margin: 15px 0;}#div1 input{color: #fff;width:100px;height:40px;background: darkseagreen;border:none;font-size: 14px;letter-spacing: 5px;}#div1 p{font-size: 20px;line-height: 24px;text-align: center;color:...
对象的创建以及常用操作下面的都是创建对象比较简单直观,也是JavaScript种创建对象最基本的方法,如果要创建多个对象,就会出现很多相同的代码。1:使用new运算符(不推荐)var user = new Object(); //使用new运算符创建一个对象 user.name = "Jack"; //给对象添加属性 user.age = 25; user.address = "四川成都"; 2:对象字面量(JSON方式) var user = { ...
如果以后公司再能让我独立做一套新的完整系统,那么我肯定会为这个系统再写一个前端框架,那么我到底该如何写这个框架呢? 在我以前的博客里我给大家展示了一个我自己写的框架,由于当时时间很紧张,做之前几乎没有完整的思考过我到底该如何去写这个框架,所以事后对于这个框架我有很多遗憾之处,当我重构过一次代码后我就没再做过任何重构操作的工作,因为我根本不想再去给它修修补补了,之所以有这个想法,就是我对我写的那个...
前言本文旨在记录JavaScript中面向对象的基础知识搞明白JavaScript中的面向对象一切都是对象JavaScript中,除了基本类型外,其它类型都是对象类型所谓对象就是若干属性的集合 数组、函数等都是对象,对象还是对象。像Number、Array、Function等这些函数,就是JavaScript默认的内建对象,可以直接使用 ,因此也常说JavaScript是基于对象的语言对象里面的一切都是属性,方法也是属性,依然表示为键值对的形式函数也可以有对象属性,其...
在ES里把对象定义为无序属性的集合,其属性可以包含基本值,对象和函数。理解对象创建对象最简单的方法就是创建一个Object的实例,再为他添加属性和方法。var person = newObject(); person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer"; person.sayName = function(){alert(this.name); };然而更加直观且方便的方法是这样的:var person = {name: "Nicholas",age: 29,job: "Software Engineer",sayName...
上一篇随笔讲了封装,这一篇我们说说继承,还是那上一篇猫和狗说事儿function Dog(name,s){this.name=name;this.sex=s; } Dog.prototype.type="犬科"; Dog.prototype.spack==function(){alert("汪汪。。。"); } function Cat(name,s){this.name=name;this.sex=s; } Cat.prototype.type="猫科"; Cat.prototype.spack=function(){alert("喵喵。。。"); } 当然猫和狗都是动物,那他们就有动物的属性,比如需要吃东西,需要呼吸...
/** * Created by jiangtao on 2015/5/12. * name jihe */(function () { function gather(msg) { //适应参数 if (msg) { if (msg.imgFile != undefined) { this.imgFile = msg.imgFile; }; if (msg.wechatAppid != undefined) { this.wechatAppid = msg.wechatAppid; }; }; this.sendEventUrl=‘/x1371/wechat/event/...
Javascript 面向对象编程(一):封装作者: 阮一峰日期: 2010年5月17日学习Javascript,最难的地方是什么?我觉得,Object(对象)最难。因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握。下面就是我的学习笔记,希望对大家学习这个部分有所帮助。我主要参考了以下两本书籍:650) this.width=650;" src="http://image.beekka.com/blog/201005/bg2010051701.jpg" />《面向对象的Javascript》(Object-Or...
Javascript oop设计模式 面向对象编程 最初我们写js代码的时候是这么写 function checkName(){//验证姓名}function checkEmail(){//验证邮箱}function checkPassword(){//验证密码}这种方式会造成全局变量的严重污染,再过渡到 var checkObject = {checkName : function(){};checkEmail: function(){};checkPassword: funcion(){}; }//也可如此写 var checkObject = {} // || function(){} checkObject.checkName = function(){}; ...
单体模式(singleton) 单体是在脚本加载时创建的,能将一系列有关联的变量和方法组织为一个逻辑单元,逻辑单元里面的内容通过单一的变量进行访问; 一个单体主要分为三部分 用于访问内部信息的入口变量(如:Sky) 属性(如:nickName/age/timeInfo) 方法(如:sayHello) 基本结构 代码如下:var Sky = { /* * 作用一,变量管理 */ nickName: "sky", age: "26", /* * 作用二,加载中初始化变量 * 在加载过程中执行并初始化Sky.i...