0
点赞
收藏
分享

微信扫一扫

JavaScript高级 创建对象的四种方式:

飞鸟不急 2022-04-13 阅读 81
javascript

JavaScript高级 创建对象的四种方式:

①直接创建法:

例:创建一个学生对象:名称,年龄    方法:吃饭

产生10个学生对象  用 js直接创建

好处:创建简单        弊端:无法量产

 

----------------------------------------------------------------------------------------------------------------------

②工厂模式 创建:

要求、重复的创建对象,需要创建时可以快速的创建出来

将创建对象的过程 封装到函数内部,直接调用函数进行对象创建

工厂模式:通过函数来创建对象

好处:可以量产对象     

弊端:无法明确对象的类型,全都是object类型的,无法类型的细分

 

 

instanceof 检测变量的数据类型  ,对应变量必须为原型创建出来的 

js中分为两种数据类型 :简单数据类型:简单数据类型在直接创建时 不走原型    复杂类型 instanceof

变量 instanceof 类型  返回布尔值

typeof     返回对应变量的数据类型  返回根本数据类型 字符串

var arr=[1,2,3]

//arr变量  检测arr变量是否为数组类型

console.log(typeof(arr)) //object

console.log(typeof(arr)==object”) //true

//变量 instanceof 类型  返回布尔值

console.log(arr  instanceof  Array)//true

注:

var num=10  不是原型

var num=new Number(10) 原型

console.log(num instanceof Number)  如果是原型就为真 true  如果不是则为false

----------------------------------------------------------------------------------------------------------------------

③构造函数:

其他的编程语言当中,想要创建对象的话,创建一个类

类:一类事物的统称  包含  属性和方法

Js中没有类概念

构造函数的方式来模拟类!!!利用js   this 指向性可以改变的问题

创建一个学生类(构造函数) name,age,egt方法

this指向 对象  window  固定对象  事件源

this指向运行环境       //window对象

function fun(){

console.log(this)//window

}

fun()

构造函数创建对象

好处:可以明确对应的对象类型

弊端:不同对象中的相同方法,无法公用,需要独立存储,造成内存损耗

 

 

然后 通过new来创建对象  new做了什么?

***重点

  1. 创建一个空对象{}
  2. 在执行函数的过程中,函数内部this指向创建出来的{}                                                                             this={} {name:"王一",age:21,eat:function(){}}
  3. 将创建对象 返回出来,赋值给前方变量

***

可以判断是否为学生类型的对象

 Prototype属性 :原型对象

 

 

想办法将  公有的方法或者属性 放到原型中呢

通过同一个构造函数创建出来的对象原型是相等的

对象的原型__proto__

console.log(s1.__proto__==s2.__proto__)

----------------------------------------------------------------------------------------------------------------------

④原型创建:

构造函数创建对象时共有的方法,没办法统一存储,需要独立开辟空间造成内存消耗

发现 每一类相同的对象,原型对象都是一个样,想办法将公有的方法 放到原型中

创建一个学生构造函数 name,age,eat公有方法

构造函数原型==实例化对象的原型

将共有的方法放入构造函数的原型中   如下图:

 

 

 

                       2022-04-09/23:00

举报

相关推荐

0 条评论