当前位置: 首页 > article >正文

JS原型对象prototype

让我简单的为大家介绍一下原型对象prototype吧!

使用原型实现方法共享

1.构造函数通过原型分配的函数是所有对象所 共享的。

2.JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象,所以我们也称为原型对象

3.这个对象可以挂载函数,对象实例化不会多次创建原型上函数,节约内存

4.我们可以把那些不变的方法,直接定义在 prototype 对象上,这样所有对象的实例就可以共享这些方法

5.构造函数和原型对象中的this 都指向 实例化的对象

    function Person(name,age){
        this.name = name
        this.age = age
    }
    // 方法可以共享
    Person.prototype.sing = function(){
        console.log("唱歌")
    }
    let zs = new Person("张三",18)
    zs.sing() // 唱歌
    let ls = new Person("李四",19)
    ls.sing() // 唱歌
    console.log(zs.sing === ls.sing) // true

构造函数里面的 this 指向实例对象

    let that 
    function Person(name, age) {
        that = this
        this.name = name
        this.age = age
    }
    // 构造函数里面的 this 就是实例对象 zs
    let zs = new Person("张三",18)
    console.log(that === zs) // true

原型对象里面的函数 this 指向的还是实例对象

    let that 
    function Person(name) {
        this.name = name
    }
    Person.prototype.sing = function() {
        that = this
        console.log("唱歌")
    }
    let zs = new Person("张三")
    zs.sing()
    console.log(that === zs) // true

感谢大家的阅读,如有不对的地方,可以向我提出,感谢大家!


http://www.kler.cn/news/134231.html

相关文章:

  • 【Android】使用Retrofit2发送异步网络请求的简单案例
  • devops底层是怎么实现的
  • 环境配置|GitHub——解决Github无法显示图片以及README无法显示图片
  • python趣味编程-5分钟实现一个俄罗斯方块游戏(含源码、步骤讲解)
  • asp.net心理健康管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目
  • JAVA深化篇_42—— 正则表达式
  • 14 Go的类型转换
  • X3DAudio1_7.dll丢失原因,X3DAudio1_7.dll丢失怎样解决分享
  • RabbitMQ消息的可靠性
  • 单元测试实战(三)JPA 的测试
  • 【c++随笔13】多态
  • 力扣174. 寻找二叉搜索树中的目标节点(java,二叉搜索树的性质的运用)
  • vscode 创建 运行c++ 项目
  • 一文了解Word2vec 阐述训练流程
  • 第7天:信息打点-资产泄漏amp;CMS识别amp;Git监控amp;SVNamp;DS_Storeamp;备份
  • VBA之Word应用:文档(Document)的书签
  • 【Python数据结构与算法】——(线性结构)精选好题分享,不挂科必看系列
  • 函数式编程框架 functionaljava 简介
  • ClickHouse数据一致性
  • 电子学会C/C++编程等级考试2022年03月(一级)真题解析
  • linux文件IO
  • CentOS to 浪潮信息 KeyarchOS 迁移体验与优化建议
  • 【算法】二分查找-20231120
  • Leetcode—2760.最长奇偶子数组【简单】
  • ubuntu 20通过docker安装onlyoffice,并配置https访问
  • 基于Qt QList和QMap容器类示例
  • 关于缓存和数据库一致性问题的深入研究
  • 容斥 C. Strange Function改编题
  • 使用宝塔面板安装mysql
  • AI机器学习 | 基于librosa库和使用scikit-learn库中的分类器进行语音识别