返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么浅析JavaScript的写类方式
  • 314
分享到

怎么浅析JavaScript的写类方式

2024-04-02 19:04:59 314人浏览 泡泡鱼
摘要

怎么浅析javascript的写类方式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。这篇开始会记录一些写类的工具函数。以下列举

怎么浅析javascript的写类方式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

这篇开始会记录一些写类的工具函数。以下列举的有的是工作中碰到的,有的是从书籍或网上收集的。

构造函数 + 原型 直接组装一个类;同一构造函数将组装出同一类型

 function $class(constructor,prototype) {      var c = constructor || function(){};      var p = prototype || {};      c.prototype = p;      return c;  }

用构造函数来生成类实例的属性(字段),原型对象用来生成类实例的方法。

//构造函数  function Person(name) {      this.name = name;  }  //原型对象  var proto = {      getName : function(){return this.name},      setName : function(name){this.name = name;}   }  //组装  var Man = $class(Person,proto);  var Woman = $class(Person,proto);

这时候已经得到了两个类Man,Woman。并且是同一个类型的。测试如下:

console.log(Man == Woman); //true  console.log(Man.prototype == Woman.prototype); //true

创建对象看看

var man = new Man("Andy");  var woman = new Woman("Lily");   console.log(man instanceof Man); //true  console.log(woman instanceof Woman); //true  console.log(man instanceof Person); //true  console.log(woman instanceof Person); //true

ok,一切如我们所期望。但是有个问题,下面代码的结果输出false

console.log(man.constructor == Person);//false<br>

这让人不悦:从以上的代码看出man的确是通过Man类new出来的 var man = new Man("Andy"),那么对象实例man的构造器应该指向Man,但为何事与愿违呢?

原因就在于$class中重写了Person的原型:c.prototype = p;

好了,我们把$class稍微改写下,将方法都挂在构造器的原型上(而不是重写构造器的原型),如下:

function $class(constructor,prototype) {      var c = constructor || function(){};      var p = prototype || {};  //  c.prototype = p;      for(var atr in p){          c.prototype[atr] = p[atr];      }         return c;  }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网node.js频道,感谢您对编程网的支持。

--结束END--

本文标题: 怎么浅析JavaScript的写类方式

本文链接: https://lsjlt.com/news/86503.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么浅析JavaScript的写类方式
    怎么浅析JavaScript的写类方式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。这篇开始会记录一些写类的工具函数。以下列举...
    99+
    2024-04-02
  • 如何浅析JavaScript的写类方式
    如何浅析JavaScript的写类方式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。从这篇起,会由浅到深的分析JS OO之写类方式,大概会有5...
    99+
    2024-04-02
  • 怎么引入javascript代码?方式浅析
    近年来,随着JavaScript技术的高速发展,越来越多的开发者开始在自己的项目中使用这种语言。在使用JavaScript时,引入方式是非常重要的一环。但是,事实上有一些场景下并不适合采用JavaScript的传统引入方式,即<scr...
    99+
    2023-05-14
  • 浅析JavaScript中的隐式类型转换
    目录为什么会出现隐式类型转换隐式类型转换的内部转换机制何时会触发ToPrimitive或ToNumber具体案例分析总结为什么会出现隐式类型转换 这个问题的本质原因是因为JavaSc...
    99+
    2023-03-08
    JavaScript隐式类型转换 JavaScript隐式类型
  • 实现JavaScript编写类的方式有哪些
    这篇文章将为大家详细讲解有关实现JavaScript编写类的方式有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。网上实现javascript写类的方法有...
    99+
    2024-04-02
  • 如何实现JavaScript函数式的浅析
    这篇文章给大家介绍如何实现JavaScript函数式的浅析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JS函数式浅析0x00 入门的导语(废话)最近两年你要说函数式编程不火...
    99+
    2024-04-02
  • 浅析JavaScript中严格模式的使用
    目录认识严格模式严格模式限制认识严格模式 在ECMAScript5标准中,JavaScript提出了严格模式的概念(Strict Mode): 严格模式很好理解,是一种具有限制性的J...
    99+
    2023-05-18
    JavaScript严格模式使用 JavaScript严格模式
  • 怎么轻松应对JavaScript问题?方法浅析
    作为一门广泛应用于网页设计和交互式前端开发的高级脚本语言,JavaScript在当今互联网领域有着不可替代的地位。它的应用范围广泛,无论是网页特效、动态交互、Web游戏开发、移动端开发,甚至是服务器端开发,在JavaScript的帮助下都可...
    99+
    2023-05-14
  • JavaScript怎么写十个不同的类
    这篇文章主要介绍“JavaScript怎么写十个不同的类”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript怎么写十个不同的类”文章能帮助大家解决问题。Animal类Animal类是一...
    99+
    2023-07-06
  • 深入浅析Java中的方法重写
    深入浅析Java中的方法重写?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、方法重写(Override)    &nb...
    99+
    2023-05-31
    java 方法重写 ava
  • 浅析JavaScript中的操作符与表达式
    1.表达式1.1原始表达式3.14 //数字直接量 "hello world" //字符串直接量 /pattern/ //正则表达式直接量 true //返回一个布尔值: 真 false //返回一个布尔值:...
    99+
    2022-11-22
    javascript
  • CSS怎么设置居中样式?方法浅析
    CSS是网页设计中最常用的样式表语言之一,它不仅可以改变网页元素的颜色、字体、大小等属性,还能够实现居中、布局等功能。而在网页设计中,元素的居中是非常重要的,因此,本文将为您介绍如何使用CSS设置居中样式。一、文本居中在网页设计中,文本居中...
    99+
    2023-05-14
  • JavaScript的书写方式有哪些
    这篇文章主要介绍“JavaScript的书写方式有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript的书写方式有哪些”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • Vue组件间怎么通信?六种方式浅析
    Vue组件间怎么通信?下面本篇文章给大家介绍一下Vue组件通信的六种方式,希望对大家有所帮助!组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。一般来说,组件可以有几种关系.针对...
    99+
    2023-05-14
    组件通信 前端 Vue.js
  • vue3组件间怎么通信?通信方式浅析
    在我们写 vue3 的项目中,我们都会进行组件通信,我们除了使用 pinia 公共数据源的方式除外,我们还可采用那些更简单的API方法呢?那下面我就来给大家介绍介绍几种父子组件和子父组件通信的方式。1、父子组件通信1.1 definePro...
    99+
    2023-05-14
    组件通信 Vue
  • php怎么输出类中的属性值?多种方法浅析
    在PHP开发中,我们经常会使用类来组织和管理我们的代码。类是PHP的面向对象编程的重要组成部分。在一个类中,我们通常会定义一些属性和方法,用于描述和操作对象的行为和属性。在一个PHP类中,我们可以通过方法来输出类的属性值。方法是一个函数,它...
    99+
    2023-05-14
    php
  • 浅谈JavaScript的几种继承实现方式
    目录当前需求: 实现 Student 继承自 Person构造函数Person构造函数Student希望满足的条件功能利用原形链实现方法的继承方式1: 子类原型指向父类原型方式2 子...
    99+
    2023-05-17
    JavaScrip 继承
  • 浅析php+mysql怎么实现读写分离
    MySQL作为目前最流行的数据库之一,在应用中大量被使用。在高并发和数据量较大的情况下,由于MySQL的读写并发性能不足,为了提高MySQL的并发性能,读写分离成为了必要的方案。读写分离的原理是将读操作和写操作分别放在不同的MySQL实例上...
    99+
    2023-05-14
    读写分离 php mysql
  • 浅析PHP7中匿名类的使用方法
    在PHP7之后,PHP中加入了匿名类的特性。匿名类和匿名方法让PHP成为了更现代化的语言,也让我们的代码开发工作越来越方便。下面本篇文章就来简单带大家了解一下PHP7 匿名类的用法,希望对大家有所帮助!匿名类就像一个没有事先定义的类,而在定...
    99+
    2022-08-08
    PHP7 php 匿名类
  • uni-app中renderjs使用的方式浅析
    目录前言renderjs的主要作用有2个:renderjs和service层的通信使用方式补充:使用时的注意事项总结前言 对于UNI APP端的开发而言,由于上并没有document...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作