javascript的三种对象类型:1、内部对象,包括需要实例化才能使用的本地对象和不需要实例化就能使用的内置对象;2、宿主对象,就是执行JS脚本的环境提供的对象;3、自定义对象,就是开发人员自己定义的对象。
本教程 *** 作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
javascript中的对象可以分为三大类,分别是内部对象(本地对象和内置对象)、宿主对象和自定义对象。
1、内部对象
1)、本地对象,ECMAScript提供的需要实例化(new)才能使用的对象:
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError
2)、内置对象,ECMAScript提供的不需要实例化就能使用的对象:
只有Global (全局对象)和 Math
Math 对象属性
Math 对象方法
JavaScript 全局属性
JavaScript 全局函数
2、宿主对象
宿主对象就是执行JS脚本的环境提供的对象,是浏览器提供的对象。所有的BOM和DOM都是宿主对象。
3、自定义对象
开发人员自己定义的对象
⑴对象字面量方式(通过JSON来创建对象)
缺点:使用同一个接口创建很多对象,会产生大量的重复代码。
⑵工厂模式。
①工厂模式就是将创建对象的语句放在一个函数里,通过传入参数来创建特定对象,最后返回创建的对象。
函数createPerson()能够根据接受到的参数来构建一个包含所有必要信息的Person对象。
可以无数次的调用这个函数,而每次它都会返回一个包含2个属性和一个方法的对象。
②缺点:工厂模式虽然可以创建多个相似的对象,但却不能解决对象标识的问题,即怎样知道一个对象的类型。
⑶构造函数模式
①缺点:使用构造函数的主要问题是:每个方法都要在每个实例上创建一遍。
②在ECMAScript中,函数即对象,因此每定义一个函数,也就是实例化了一个对象。
③也就是说通过构造函数实例化的多个对象的方法,是多个不同的方法,但它们内部的代码以及实现的功能是相同的,这就造成了一定的资源浪费。
⑷原型模式
①js中,每个函数都有一个prototype属性,它是一个指针,指向一个对象,叫做原型对象。
②使用原型模式可以让所有的实例共享原型对象中的属性和方法,也就是说,不必再构造函数中定义对象实例的信息。
③缺点:省略了为构造函数传递初始化参数这一环节,结果所有实例在默认情况下都将取得相同的属性值。
原型模式的最大问题是由共享的本性所导致的。原型中所有属性是被很多实例共享的
这种共享对于函数非常合适。对于包含引用类型的属性来说,问题就比较突出了。
④因此,很少单独使用原型模式。
⑸组合使用构造函数模式和原型模式
①组合使用构造函数模式和原型模式,是创建自定义类型的最常见方式。
②构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性。
③结果,每个实例都会有自己的一份实例属性的副本,但同时又共享着对方法的引用,最大限度的节省了内存。
⑹其他模式
①动态原型模式:仅在第一次调用构造函数时,将方法赋给原型对象的相应属性,其他示例的处理方式同构造函数模式
②寄生构造函数模式:仅仅封装创建对象的代码,然后再返回新创建的对象,仍使用new *** 作符调用
③稳妥构造函数模式:没有公共属性,只有私有变量和方法,以及一些get/set方法,用以处理私有变量。
【相关推荐:javascript学习教程】
以上就是javascript对象类型分哪三种的详细内容,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)