自定义对象、prototype原型属性
2016-11-08 13:35
302 查看
一、自定义对象
1、在javascript没有类的概念,只要有函数即可创建对象。
2、自定义对象的格式:
方式1: 使用无参的函数创建对象。
方式2:使用带参的函数创建对象。this表示当前对象。
方式3: 使用Object函数创建对象,javascript默认创建了一个 function Object(){}。
方式4:使用字面量的方式创建。
3、需求:编写一个js文件,在js文件中自定义一个数组工具对象,该工具对象要有一个找到最大值的方法,与找元素对应的索引值的方法。
1)js代码:
2)html代码:
二、prototype原型属性:
1、有这样的一个需求:想把上诉的getMax与searchEle方法添加到数组对象中。
2、Prototype注意的细节:
1)prototype是函数(function)的一个必备属性(书面一点的说法是”保留属性”)(只要是function,就一定有一个prototype属性)
2)prototype的值是一个对象。
3)可以任意修改函数的prototype属性的值。
4)一个对象会自动拥有prototype的所有成员属性和方法。
3、作用:给一个方法追加一些功能,就可以使用prototy。(jquery中使用较多)
4、解决需求:
5、练习:给字符串对象添加一个toCharArray的方法,然后再添加一个reverse(翻转)的方法。
1、在javascript没有类的概念,只要有函数即可创建对象。
2、自定义对象的格式:
方式1: 使用无参的函数创建对象。
方式2:使用带参的函数创建对象。this表示当前对象。
方式3: 使用Object函数创建对象,javascript默认创建了一个 function Object(){}。
//类似方式1 var p = new Object(); p.id = 110; p.name = "铁蛋"; document.write("编号:"+ p.id+" 姓名:"+ p.name);
方式4:使用字面量的方式创建。
3、需求:编写一个js文件,在js文件中自定义一个数组工具对象,该工具对象要有一个找到最大值的方法,与找元素对应的索引值的方法。
1)js代码:
//创建ArrayTool的对象 var tool = new ArrayTool(); function ArrayTool(){ //找最大值 this.getMax = function(arr){ var max = arr[0]; for(var i = 1 ; i<arr.length ;i++){ if(arr[i]>max){ max = arr[i]; } } return max; } //找元素 的索引值 this.searchEle = function(arr,target){ for(var i = 0 ; i<arr.length ; i++){ if(arr[i] ==target){ return i; } } return -1; } }
2)html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script src="ArrayTool.js" type="text/javascript"></script> <!--两个<script>中不能写东西了--> <script type="text/javascript"> var arr = [12,15,9,4]; var max = tool.getMax(arr); document.write("最大值:"+ max+"<br/>"); var index = tool.searchEle(arr,9); document.write("找到的索引值是:"+ index); </script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> </body> </html>
二、prototype原型属性:
1、有这样的一个需求:想把上诉的getMax与searchEle方法添加到数组对象中。
//就是需要在Array对象中添加上这两个方法,但是Array是内置对象,不能这样添加方法。 functoin Array(){ this.getMax = function(){ } this.searchEle = function(){ } }
2、Prototype注意的细节:
1)prototype是函数(function)的一个必备属性(书面一点的说法是”保留属性”)(只要是function,就一定有一个prototype属性)
2)prototype的值是一个对象。
3)可以任意修改函数的prototype属性的值。
4)一个对象会自动拥有prototype的所有成员属性和方法。
//猜想Array对象内部结构: function Array(){ this.prototype = new Object(); //Array对象的必备属性,并且是一个对象 } Array.prototype.getMax = function(){ //Array对象的prototype对象的getMax方法 } new Array(); //这个对象就自动拥有了自动拥有prototype的所有成员属性和方法,即这里的getMax()方法。
3、作用:给一个方法追加一些功能,就可以使用prototy。(jquery中使用较多)
4、解决需求:
5、练习:给字符串对象添加一个toCharArray的方法,然后再添加一个reverse(翻转)的方法。
相关文章推荐
- 自定义对象,Prototype原型属性
- 利用prototype属性自定义对象,实现对象继承等面向对象设计
- 原型对象prototype和原型属性[[Prototype]]
- java基础64 JavaScript中的Arrays数组对象和prototype原型属性(网页知识)
- javascript 对象及原型继承有关的属性:constructor、prototype、isPrototypeOf、instanceof、in 、hasOwnProperty 等等
- [js高手之路]原型对象(prototype)与原型链相关属性与方法详解
- 每个对象有原型(默认属性),每个原型有构造函数(默认属性) : (每个对象都有prototype属性,每个prototype都有constructor属性)
- 给对象添加属性----Prototype原型对象
- 原型设计模式prototype-构造js自定义对象
- JavaScript为对象原型prototype添加属性的两种方式
- 使用for..in时会遍历对象原型中的自定义属性
- 通过构造函数创建的对象的原型指向构造函数的prototype属性
- 继承:《原型和原型链(prototype 属性使您有能力向对象添加属性和方法。)》
- js 高级开发:对象属性prototype,自定义命名空间,自定义继承,闭包封装
- [js高手之路]原型对象(prototype)与原型链相关属性与方法详解
- Javascript(二)-05-(常见对象-String-原型属性prototype)
- js中函数对象的属性,函数原型属性length、name、prototype
- 从对象创建 到构造函数以及原型对象(prototype的使用,属性的共享)
- javascript 对象及原型继承有关的属性:constructor、prototype、isPrototypeOf、instanceof、in 、hasOwnProperty 等等
- JavaScript为对象原型prototype添加属性的两种方式