摘要:面向对象一创建对象构造函数或对象字面量创建单个对象工厂模式用函数来封装特定接口创建对象的细节构造函数原型模式组合模式最常用动态原型模式寄生构造函数模式工厂模式缺点函数能够创建根据接受的参数来构建一个包含所有必要信息的对象。
面向对象
一:创建对象
1.Object构造函数或对象字面量创建单个对象
2.工厂模式:(用函数来封装特定接口创建对象的细节)
3.构造函数:
4.原型模式:
5.组合模式(最常用*)
6.动态原型模式
7.寄生构造函数模式
- // 工厂模式
- 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("leo",29,"doctor");
- var person2 = createPerson("jack",28,"teacher");
- // 缺点:函数createPerson()能够创建根据接受的参数来构建一个包含所有必要信息的 Person对象。
- //可以无数次的调用这个函数,而每次他都会返回三个属性和一个方法的对象。
- //工厂模式虽然解决了创建多个相同对象的问题,但却没有解决对象识别的问题!!!(不懂什么意思)
- // 构造函数模式
- function Person(name,age,job){
- this.name = name;
- this.age = age;
- this.job = job;
- this.sayName = function(){
- alert(this.name);
- }
- }
- var person1 = new Person("leo",29,"doctor");
- var person2 = new Person("jack",28,"teacher");
- // 优点:创建自定义构造函数意味着将来我们可以将他的实例标识为一种特定的类型,
- //而这正是构造函数模式胜过工厂模式的地方
- // 缺点:就是每个方法都要在每个实例上创建一遍,在前面的例子中person1,person2都有一个同样的sayName方法,等于创建了两次相同的sayName方法
-
- //原型模式
- function Person(){
- }
- Person.prototype.name = "leo";
- Person.prototype.age = 29;
- Person.prototype.job = "doctor";
- Person.prototype.sayName = function(){
- alert(this.name);
- }
- var person1 = new Person();
- person1.sayName(); // leo
- var person2 = new Person();
- person2.sayName(); // leo
- alert(person1.sayName == person2.sayName); //true
- // 优点:可以让所有的对象实例共享它所包含的所有属性和方法,
- //换句话说不必在构造函数中定义对象实例的信息,而是可以将这些信息直接添加到原型对象中
- // 缺点:省略掉了为构造函数传递初始化参数的步骤,使得所有实例在默认情况下都取得相同的属性值
- // 属性共享
- // 组合模式
- // 使用构造函数模式和原型模式,构造函数定义实例属性,原型定义方法和共享属性
- function Person(name,age,job){
- this.name = name;
- this.age = age;
- this.job = job;
- }
- Person.prototype = {
- constructor:Person, // 对象字面量形式会使constructor属性重写,所以要重新赋值
- sayName:function(){
- alert(this.name);
- }
- }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/81181.html
摘要:面向对象面向对象的概述面向对象是什么面向对象编程的全称是,简称。面向对象编程是用抽象方式创建基于现实世界模型的一种编程。面向对象编程可以看做是使用一系列对象相互协作的软件设计。面向对象编程的山歌主要的特征是封装继承多态。 面向对象 面向对象的概述 面向对象是什么 面向对象编程的全称是Object Oriented Programming,简称OOP。面向对象编程是用抽象方式创建基于现实...
摘要:二面向对象有什么特征面向对象的主要特征有抽象继承封装和多态。析构函数析构函数是在引入的,它的作用与调用时机和构造函数刚好相反,它在对象被销毁时自动执行。 PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。PHP中面向对象常考的知识点有以下7点,我将会从以下几点进行详细介绍说明,帮助你更好的应对PHP面试常考的面向对象相关的知识点和考题。整个面向对象文章的结构涉...
摘要:是完全的面向对象语言,它们通过类的形式组织函数和变量,使之不能脱离对象存在。而在基于原型的面向对象方式中,对象则是依靠构造器利用原型构造出来的。 JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征。本文将回归面向对象本意,从对语言感悟的角度阐述为什...
摘要:面向对象中有三大特征,封装,继承,多态。这不仅无法做到数据共享,也是极大的资源浪费,那么引入对象实例对象的属性指向其构造函数,这样看起来实例对象好像继承了对象一样。实例对象的原型指向其构造函数的对象构造器的指向。 前言 为什么说是再谈呢,网上讲解这个的博客的很多,我开始学习也是看过,敲过就没了,自以为理解了就结束了,书到用时方恨少啊。实际开发中一用就打磕巴,于是在重新学习了之后分享出来...
摘要:对象重新认识面向对象面向对象从设计模式上看,对象是计算机抽象现实世界的一种方式。除了字面式声明方式之外,允许通过构造器创建对象。每个构造器实际上是一个函数对象该函数对象含有一个属性用于实现基于原型的继承和共享属性。 title: JS对象(1)重新认识面向对象 date: 2016-10-05 tags: JavaScript 0x00 面向对象 从设计模式上看,对象是...
摘要:知识点总结面向对象知识点总结面向对象面向对象概念是相对于面向过程而言,过程其实就是函数,对象是将函数和属性进行了封装。指向了该对象关键字代表对象。静态变量所属于类,所以也称为类变量成员变量存在于堆内存中。 Java知识点总结(面向对象) @(Java知识点总结)[Java, Java面向对象] [toc] 面向对象概念 是相对于面向过程而言,过程其实就是函数,对象是将函数和属性进行了封...
阅读 3265·2021-10-12 10:12
阅读 3198·2021-09-22 16:04
阅读 3396·2019-08-30 15:54
阅读 2716·2019-08-29 16:59
阅读 3088·2019-08-29 16:08
阅读 969·2019-08-29 11:20
阅读 3599·2019-08-28 18:08
阅读 791·2019-08-26 13:43