1、JavaScript程序设计程序设计第第4章章 JavaScript对象对象4.1 对象简介4.2 创建对象4.3 对象特性4.4 单体内置对象JavaScript程序设计程序设计第第4章章 JavaScript对象对象4.5 实战:产生n个不重复随机数JavaScript程序设计程序设计 对象 所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成;var o=p:Hello World;4 4.1.1 对象简介对象简介第4章 JavaScript对象JavaScript程序设计程序设计 对象属性4 4.1.1 对象简介对象简介第4章 JavaScript对象Java
2、Script程序设计程序设计属性属性属性类型属性类型描述描述Prototype对象对象的原型,用来实现继承功能的关键对象Class字符串描述对象类型的字符串值,使用typeof操作符返回的结果Get函数返回属性值。获取指定属性名的值Put函数设置指定的属性值。为指定的属性赋值CanPut函数返回指定属性是否可用通过Put操作设置值HasProperty函数返回对象是否有指定的属性Delete函数从对象中删除指定属性DefaultValue函数返回对象的默认值,只能是原始值,不能是引用类型Construct函数通过new操作符创建一个对象。实现了这个内部属性的对象被叫做构造函数(可以理解为类)C
3、all函数执行关联在对象上的代码,通过函数表达式调用(也就是通过函数名调用函数),实现了这个内部方法的对象被叫做函数HasInstance函数返回给定的值是否扩展了当前对象的属性和行为(可以理解为给定的对象是否为本类创建的对象),在JavaScript本地对象中,只要Function对象实现了这个属性Scope对象作用域链定义了一个函数的执行环境 对象字面量模式创建对象var person=name:Nicholas;age:22;job:software Engineer;sayName:function()alter(this.name);4.2 4.2 创建对象创建对象第4章 JavaS
4、cript对象JavaScript程序设计程序设计 工厂模式创建对象function createPerson(name,age,job)var o=new Object();o.name=name;o.age=age;o.job=job;o.sayName=function()alert(this.name);return o;var person1=createPerson(Nicholas,22,software Engineer);var person2=createPerson(Greg,24,student);4.2 4.2 创建对象创建对象第4章 JavaScript对象Java
5、Script程序设计程序设计 构造函数模式创建对象function Person(name,age,job)this.name=name;this.age=age;this.job=job;this.sayName=function()alert(this.name);/通过new操作符创建Person的实例var person1=new Person(Nicholas,22,software Engineer);var person2=new Person(Greg,24,student);person1.sayName();person2.sayName();4.2 4.2 创建对象创建对
6、象第4章 JavaScript对象JavaScript程序设计程序设计 原型模式创建对象function Person()Person.prototype.name=Nicholas;Person.prototype.age=22;Person.prototype.job=software Engineer;Person.prototype.sayName()alert(this.name);var person1=new Person();person1.sayName();/Nicholasalert(person1.sayName=person2.sayName);/true4.2 4.
7、2 创建对象创建对象第4章 JavaScript对象JavaScript程序设计程序设计组合使用构造函数模式和原型模式创建对象4.2 4.2 创建对象创建对象第4章 JavaScript对象JavaScript程序设计程序设计 动态原型模式创建对象function Person(name,age)this.name=name;this.age=age;this.job=job;/方法if(typeof this.sayName!=function)Person.prototype.sayName=function()alert(this.name);var friend=new Person(
8、Nicholas,22,Software Engineer);/初次调用构造函数,此时修改了原型var person2=new Person(amy,21);/此时sayName()方法已经存在,不会再修改原型4.2 4.2 创建对象创建对象第4章 JavaScript对象JavaScript程序设计程序设计 任务1.1.任务介绍任务介绍定义一个Person对象,对象包括属性姓名,并获取实例化对象Person的姓名信息。2.2.任务目标任务目标学会JavaScript几种创建对象模式及全局变量的存储机制。3.3.实现思路实现思路1)选用构造函数模式创建对象,并且将属性为方法的属性定义到函数之外
9、。2)全局变量是绑定在window对象上的,是window对象的属性。4.2 4.2 创建对象创建对象第4章 JavaScript对象JavaScript程序设计程序设计 对象的四种特性 抽象性 封装性 继承性 多态性 4.3 4.3 对象特性对象特性第4章 JavaScript对象JavaScript程序设计程序设计 任务1.1.任务介绍任务介绍定义一个Student类作为Person类的子类,在Student类中继承父类的walk()方法、重新定义父类的sayHello()方法并添加Student类自己的sayGoodBye()方法。2 2.任务目标任务目标理解JavaScript面向对象
10、的四大特性并掌握创建对象的方法。3 3.实现思路实现思路1)选用构造函数模式创建对象,并且将属性为方法的属性定义到函数之外。2)全局变量是绑定在window对象上的,是window对象的属性。4.3 4.3 对象特性对象特性第4章 JavaScript对象JavaScript程序设计程序设计 Global对象 Global 对象是 JavaScript 中最特别的对象,因为实际上它根本不存在。Global 对象在某种意义上是作为一个终极的兜底儿对象来定义的。换句话说,不属于任何其他对象的属性和方法,最终都是它的属性和方法。所有在全局作用域中定义的属性和函数,都是 Global 对象的属性。4.
11、4 4.4 单体内置对象单体内置对象第4章 JavaScript对象JavaScript程序设计程序设计 Global对象常用内置方法 (1)URI 编码方法 (2)eval()方法4.4 4.4 单体内置对象单体内置对象第4章 JavaScript对象JavaScript程序设计程序设计 Global对象的属性4.4 4.4 单体内置对象单体内置对象第4章 JavaScript对象JavaScript程序设计程序设计属性属性释义释义undefined特殊值undefinedNaN特殊值NaNInfinity特殊值InfinityObject构造函数ObjectArray构造函数ArrayFu
12、nction构造函数FunctionBoolean构造函数BooleanString构造函数StringNumber构造函数NumberDate构造函数DateRegExp构造函数RegExpError构造函数ErrorEvalError构造函数EvalErrorRangeError构造函数RangeErrorReferenceError构造函数ReferenceErrorSyntaxError构造函数SyntaxErrorTypeError构造函数TypeErrorURIError构造函数URIError Math对象属性4.4 4.4 单体内置对象单体内置对象第4章 JavaScript对
13、象JavaScript程序设计程序设计属性属性释义释义Math.E自然对数的底数,即常量e的值Math.LN1010的自然对数Math.LN22的自然对数Math.LOG2E以2为底e的对数Math.LOG10E以10为底e的对数Math.PI的值Math.SQRT1_21/2的平方根(即2的平方根的倒数)Math.SQRT22的平方根 Math对象方法 (1)min()和 max()方法;(2)舍入方法:Math.ceil()、Math.floor()和 Math.round();(3)random()方法;(4)其他方法;4.4 4.4 单体内置对象单体内置对象第4章 JavaScript
14、对象JavaScript程序设计程序设计属性属性释义释义Math.abs(num)返回num的绝对值Math.asin(x)返回x的反正弦值Math.exp(num)返回Math.E的num次幂Math.atan(x)返回x的反正切值Math.log(num)返回num的自然对数Math.atan2(y,x)返回y/x的反正切值Math.pow(num,power)返回num的power次幂Math.cos(x)返回x的余弦值Math.sqrt(num)返回num的平方根Math.sin(x)返回x的正弦值Math.acos(x)返回x的反余弦值Math.tan(x)返回x的正切值 实战 (1
15、)案例)案例描述描述 用JavaScript产生n个min,max区间内的不重复随机数。(2)实现思路)实现思路 1)运用Math对象的random()方法生成一个min,max区间内的随机数;2)生成n个min,max区间内的不重复随机数,生成第i个min,max区间的随机数时,与之前i-1个数比较,如有重复,令i=i-1;重复生成第i个随机数。确保每次生成的随机数都不重复。4.5 4.5 实战:产生实战:产生n n个不重复随机数个不重复随机数第4章 JavaScript对象JavaScript程序设计程序设计 对象简介 创建对象 对象特性 单体内置对象总结总结第4章 JavaScript对象JavaScript程序设计程序设计