复习JavaScript高级01-内置对象-原型对象-构造函数

目录

内置对象

构造函数

原型对象

总结


内置对象

内置对象api: js作者提前写好的对象,里面有一些预先定义的方法,我们直接使用即可,无需关心原理

  • api : 预先定义的函数

例如:

数组的增删改查操作 
    新增元素到最后面 : arr.push( 元素 )
    新增元素到最前面 : arr.unshift()
    删除最后一个元素 : arr.pop()
    删除第一个元素   : arr.shift()
    删除指定位置元素 : arr.splice(起始下标,删除数量)

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    let arr = [20, 40, 12, 14, 5, 34, 43, 6, 6, 7, 756, 765, 7, 58]
    let str = arr.join("$") // 转换字符串类型 中间可以写字符串
    console.log(str);
    arr.reverse() // 反转函数

    console.log(arr);
    arr.sort(function (a, b) {
      return b - a // 冒泡排序
    })
    console.log(arr);

    let index = '大前端聪明蛋天下第一'
    let index1 = index.indexOf('聪明蛋') //indexOf 返回指定位置的下标
    console.log(index1);

    let str1 = '你是谁#聪明蛋'
    console.log(str1.split('#')) //split 切割字符串 可以分成2个数组
    console.log(str1.split('='));

    let index2 = index.substr(5, 3) //substr 截取部分字符串取第五个下标 截取后的3个数字
    console.log(index2)

    console.log('dukawhdkwbdkBYJGSDJY'.toLocaleLowerCase()) //全部转换为小写
    console.log('dukawhdkwbdkBYJGSDJY'.toLocaleUpperCase()) //全部转换为大写
  </script>
</body>

</html>

总而言之就是预先设定好的函数 直接调用即可

构造函数

       


  <script>
    function Conte(name, age) {
      // 里面有4步
      //1,创建一个新的空对象{}
      //2,this指向这个空对象
      //3,给this赋值
      //4.return这个this
      this.name = name
      this.age = age
    }
    let index1 = new Conte('聪明蛋', 18)
    let index2 = new Conte('聪明蛋', 22)
    console.log(index1, index2)
    // 构造函数 一定要加new  
  </script>

构造函数创建对象(new关键字四个工作流程)
        构造函数: 使用new关键字调用的函数
            (1)创建空对象
            (2)this指向这个对象
            (3)对象赋值
            (4)返回对象

原型对象

原型:任何构造函数在被创建的时候,系统都会自动帮我们创建一个与之对应的对象,称之为原型对象

  • 同时解决内存浪费与全局变量污染的问题

谁可以访问原型对象中的成员(属性和方法)

  • 构造函数自身:构造函数名.prototype

  • 构造函数实例化的每一个对象:点语法直接访问

            a. 原型 :每一个函数被创建的时候,系统都会自动创建与之对应的对象,称之为原型对象
            b. 作用: 解决 构造函数   (1)内存资源浪费 (2)全局变量污染
            c. 怎么用: (1)构造函数.prototype  (2)实例化对象直接访问 

 

 /* 
        1.prototype属性: 属于构造函数,指向原型对象
            * 作用: 解决构造函数资源浪费+变量污染
        2.__proto__属性: 属于实例对象,指向原型对象
            * 作用: 可以让实例对象访问原型中的成员
        */

      //1.构造函数
      function Person (name, age) {
        this.name = name
        this.age = age
      }

      //2.原型对象
      Person.prototype.eat = function () {
        console.log('我中午真的吃了红烧武昌鱼')
      }
      Person.prototype.country = '中国人'

      //3.实例对象
      let p1 = new Person('聪明蛋', 28)
      console.log(p1)

      /* 
      __proto__ : 属于实例对象,指向原型对象
      */
     console.log( Person.prototype === p1.__proto__ )//true

     //实例对象为什么可以直接访问原型中的成员,其实都是通过__proto__来访问的
     /* 
     1.虽然实例对象可以直接访问原型的原理是 __proto__,但是开发中不推荐使用
     2.原因: __proto__不是ECMA标准语法,有一些浏览器不支持。
     3.结论: 学习阶段,学习原型可以用__proto__. 实际开发中,建议省略__proto__
     */
     p1.eat()//p1.__proto__.eat()

总结

  • 什么是原型?

    • 任何构造函数在被创建的时候,系统都会自动帮我们创建一个与之对应的对象,称之为原型对象

  • 2.如何访问原型对象

    • 构造函数名.prototype

  • 3.哪些对象可以访问原型?

    • a.构造函数自身

    • b.该原型对应的构造函数实例化出来的对象

  • 4.proto属性介绍

    • 属于对象,指向实例化这个对象的构造函数对应的原型

    • proto属性不是W3C的标准属性,所以实际开发中一般不会使用它来访问原型

  • 6.constructor属性介绍

    • 属于原型对象,指向这个原型对应的构造函数

    • 作用:可以得知某个实例对象,到底是由哪一个构造函数生成的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值