学习days-01

Days-01

一、javascript中几种创建对象的方式及优缺点

1.直接创建法

js直接创建对象

好处:创建简单

弊端:无法量产

2.工厂模式

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

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

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

好处:可以量产对象

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

3.构造函数

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

js中分为两种数据类型 :简单数据类型:简单数据类型在直接创建时 不走原型(string number  boolean  undefined  null   symbol    

复杂类型(function  array obj Math Date)instanceof

 instanceof 类型  返回布尔值

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

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

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

js中没有类概念

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

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

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

        this指向运行环境

        window对象

         function fun(){

             console.log(this)//window

        }

         fun()

        构造函数创建对象

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

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

Prototype属性 :原型对象

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

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

   对象的原型__proto__

4.原型创建

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

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

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

将共有的方法放入构造函数的原型中

好处:降低内存消耗;

弊端:如果使用原型方式创建对象,那么生成的所有对象会共享原型中的属性,

一般用原型加构造;

二、通过new来创建对象  new做了什么?

1.创建一个空对象 {}

2.在执行函数的过程中 ,函数内部 this指向创建出来的{}    this={} {name:"王一",age:21,eat:function(){}}

3.将创建对象 返回出来,赋值给前方变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值