自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 JavaScript对象继承——寄生组合式继承

d)寄生组合式继承优点:修正组合继承的缺点,只使用一次构造函数缺点:优势:做对比:

2020-10-14 19:36:50 303

原创 JavaScript对象继承——寄生式继承

c)寄生式继承(类似工厂模式)核心:创建新对象===》增强对象(添加属性或者方法)===》返回对象缺点类似于工厂模式

2020-10-13 17:11:43 333

原创 JavaScript对象继承——原型式继承

b)原型式继承核心:用一个函数,生出来一个新的对象 #案例:#把obj1的下标1改为"张三"优点:从已有对象繁衍出新的对象,不需要创建自定义类型缺点:1》原型的引用属性会互相影响(公用一个地址) 2》无法实现代码复用, 属性是后添加的,都没用到函数封装。...

2020-10-12 10:27:06 272

原创 JavaScript对象继承——组合继承

3》继承方式:(最常用的继承方式)a)组合继承优点: 1》不存在引用属性共享的问题2》可传递参数3》方法可复用缺点:(小瑕疵)子类原型上有一份多余的父类实例的属性(原型链使用了一次实例的所有的属性和方法,其次借用构造函数也使用了一次)...

2020-10-11 09:30:55 222

原创 JavaScript对象继承——借用构造函数

2》借用构造函数核心:借父类的构造函数来增强子类实例,即:相当于复制了一份父类的属性或者方法给子类了。#案例:这里不论是属性还是方法,都不是共享的,因此obj1变了,obj2不会改变。优点: a)解决了子类实例共享父类引用属性的问题b)创建子类实例时,可以向父类构造函数传递参数(如下例:)写法一:写法二:缺点:无法实现复用,每一个子类实例都有一个新的run函数,如果实例的对象多了(new多了),内存消耗过大。...

2020-10-10 20:36:54 148

原创 JavaScript对象继承——原型链

一、继承1》原型链用法:把实例的父类给子函数(子类)的原型#把实例的父类给子函数的原型(第9行)由于原型具有共享性,也就是写一个引用类型(20行),再new一下obj2【小结】缺点:a)因为修改了obj1.arr后obj2.arr也变了,因为来自原型对象的引用属性里所有实例共享的b)创建子类实例时,无法向父类构造函数传递参数...

2020-10-09 17:36:30 146

原创 JavaScript对象模式——动态原型模式

5》动态原型模式动态原型模式:是将所有的信息(属性和方法)都封装在构造函数中,而通过构造函数来初始化原型(只初始化一次)解决:第一个对象实例化的时候就初始化原型,后面的就不需要初始化#判断一下:由于obj1先执行一次函数内的代码,那么run方法就共享一次,共享完之后obj2再去new的时候,this.run 已经=“function”,那么就不初始化了。因此打印1只会出来一次。...

2020-10-08 22:29:20 312

原创 JavaScript对象模式——组台模式_构造函数和原型模式

组合使用构造器+原型模式一、作用:1. 构造函数:定义实例属性2. 原型:定义和共享属性二、优点: 每一个实例都会有自己的一份实例属性,但又同时共享着方法运行结果如下:把obj1.userName改为“李四”,发现obj2. userName没有改变因为1-7行是不共享的,9-11行是共享的,这样最大限度的解决了内存问题。#不管是构造函数还是上示的案例,都可以传入参数注意构造函数里的一个属性写:声明.属性,而name是传入的参数,不用加this运行结果如下:...

2020-10-07 09:19:54 174

原创 JavaScript对象模式——原型模式

3》原型模式特点:1.每当创建一个函数,都有一个prototype(原型)的属性2.原型(prototype)这个属性的指针,指向于一个对象,而这个对象的用途可以由特定类型的所有实例“共享”的方法和属性.3.原型(prototype)是共享所有的属性和方法,也就是如果new了2个函数(实例化2次),他们的方法是共享的(共同使用一个地址),做对比返回true。 run方法:run方法做一下对比:不管是两个=还是三个==,结果都是true做对比返回true,他们是共享的(共同使用一个地址),所以

2020-10-06 15:03:35 201 2

原创 JavaScript对象模式——构造函数模式

2》构造函数模式1.和工厂模式区别:构造函数中,不需要在内部创建对象(更不需要给这个对象添加属性、方法,也不用return 对象)2.如果要写构造函数模式,函数的首字母需要大写new Array()new String()new Date()new RegExp();3. 和工厂模式共同点(缺点):虽然new的是共同的一个函数,但是其中的方法做对比,返回false,也就意思说,new的函数中的方法,不是共享(不是同一个地址).#理解构造函数:1>其实构造函数就是普通函数,只是首字母

2020-10-05 17:10:55 116

原创 JavaScript对象模式——工厂模式

一、对象模式1》工厂模式a)现实中的工厂差不多b)在函数内部创建了一个新的空对象,最后返回这个对象c)缺点:虽然new的是共同的一个函数,但是其中的方法做对比,返回false,也就意思说,new的函数中的方法,不是共享(不是同一个地址)现在new一下函数:这里都用的同一个createObject(),因此打印出来的结果是一样的。#打印一下run方法,结果是一样的现在做一下对比:结果为false因此,虽然new的是同一个函数,但是其中的方法做对比,返回false,即o1、o2

2020-10-04 15:21:16 133

原创 JavaScript对象——序列化对象

一、序列化对象含义:可以把对象转换为字符串:JSON.stringify();可以把字符串转换为对象:JSON.parse();#打印obj,肯定显示是一个对象:把对象转化为字符串:再把字符串转换为对象:

2020-10-03 23:05:21 413

原创 JavaScript对象——枚举属性_读GET_写SET

6》枚举对象对象的属性枚举for in 遍历出来的是可枚举的for in 遍历不出来是不可枚举的name、age是能遍历出来的(是可枚举的),而toString constructor是遍历不出来的(即不可枚举的)。#让name属性不可枚举因此现在name属性是不可枚举的但对象身上还有name属性,并没有删除这个属性,只是不能遍历出来了。语法:Object.defineProperty(对象,属性名称,{enumerable:false }) ===>让对象的属性不可

2020-10-02 23:44:59 283

原创 JavaScript对象——检测属性是否存在

检测对象检测对象的属性、方法是否存在这些属性其实就是系统自带的

2020-10-01 23:32:27 214

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除