全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javascript中的面向对象

相信大家对javascript中的面向对象写法都不陌生,那还记得有几种创建对象的写法吗?相信大家除了自己常写的都有点模糊了,那接下来就由我来帮大家回忆回忆吧!

1. 构造函数模式

通过创建自定义的构造函数,来定义自定义对象类型的属性和方法。

function cons(name,age){
 this.name = name;
 this.age = age;
 this.getMes = function(){
  console.log(`my name is ${this.name},this year ${this.age}`);
 }
}
var mesge = new cons('will',21);
mesge.getMes();

2. 工厂模式

该模式抽象了创建具体对象的过程,用函数来封装以特定接口创建对象的细节

function cons(name,age){
 var obj = new Object();
 obj.name = name;
 obj.age = age;
 obj.getMes = function(){
  console.log(`my name is ${this.name},this year ${this.age}`);
 }
 return obj;
}
var mesge = cons('will',21);
mesge.getMes();

3. 字面量模式

字面量可以用来创建单个对象,但如果要创建多个对象,会产生大量的重复代码

var cons = {
 name: 'will',
 age : 21,
 getMes: function(){
  console.log(`my name is ${this.name},this year ${this.age}`);
 }
}
cons.getMes();

4. 原型模式

使用原型对象,可以让所有实例共享它的属性和方法

function cons(){
 cons.prototype.name = "will";
 cons.prototype.age = 21;
 cons.prototype.getMes = function(){
  console.log(`my name is ${this.name},this year ${this.age}`);
 }
}

var mesge = new cons();
mesge.getMes();

var mesge1 = new cons();
mesge1.getMes();
console.log(mesge.sayName == mesge1.sayName);//true

5. 组合模式

最常见的方式。构造函数模式用于定义实例属性,而原型模式用于定义方法和共享的属性,这种组合模式还支持向构造函数传递参数。实例对象都有自己的一份实例属性的副本,同时又共享对方法的引用,最大限度地节省了内存。该模式是目前使用最广泛、认同度最高的一种创建自定义对象的模式

function cons(name,age){
 this.name = name;
 this.age = age;
 this.friends = ["arr","all"];
}
cons.prototype = {
 getMes : function(){
  console.log(`my name is ${this.name},this year ${this.age}`);
 }
}
var mesge = new cons("will",21);
var mesge1 = new cons("jalo",21);
console.log(mesge.friends);
mesge.friends.push('wc'); //还可以操作数组哈O(∩_∩)O!
console.log(mesge.friends);
console.log(mesge1.friends);
mesge.getMes();
mesge1.getMes();
console.log(mesge.friends === mesge1.friends);
console.log(mesge.sayName === mesge1.sayName);

最后在告诉你个秘密,ES6引入了类(Class),让对象的创建、继承更加直观了

// 定义类

class Cons{
 constructor(name,age){
  this.name = name;
  this.age = age;
 }
 getMes(){
  console.log(`hello ${this.name} !`);
 }
}
let mesge = new Cons('啦啦啦~',21);
mesge.getMes();

在上面的代码片段里,先是定义了一个Cons类,里面还有一个constructor函数,这就是构造函数。而this关键字则代表实例对象。

而继承可以通过extends关键字实现。

class Ctrn extends Cons{
 constructor(name,anu){

  super(name); //等同于super.constructor(x)
  this.anu = anu;
 }
 ingo(){
  console.log(`my name is ${this.name},this year ${this.anu}`);
 }
}
let ster = new Ctrn('will',21);
ster.ingo();
ster.getMes();

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# javascript  # 面向对象  # js中的面向对象入门  # JS基于面向对象实现的拖拽功能示例  # Javascript之面向对象--封装  # 归纳下js面向对象的几种常见写法总结  # JavaScript面向对象编写购物车功能  # Javascript 面向对象(一)(共有方法  # 私有方法  # 特权方法)  # JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)  # JS 面向对象之神奇的prototype  # 面向对象的Javascript之二(接口实现介绍)  # JS面向对象编程之对象使用分析  # javascript面向对象入门基础详细介绍  # 自定义  # 自己的  # 都有  # 都不  # 还可以  # 多个  # 这就是  # 我来  # 可以通过  # 还有一个  # 几种  # 在上面  # 那还  # 你个  # 最常见  # 就由  # 可以用来  # 啦啦  # 是目前 


相关文章: 如何通过宝塔面板实现本地网站访问?  网站专业制作公司有哪些,做一个公司网站要多少钱?  宝塔建站无法访问?如何排查配置与端口问题?  如何彻底卸载建站之星软件?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  广州商城建站系统开发成本与周期如何控制?  MySQL查询结果复制到新表的方法(更新、插入)  高端云建站费用究竟需要多少预算?  如何打造高效商业网站?建站目的决定转化率  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  建站VPS能否同时实现高效与安全翻墙?  如何快速使用云服务器搭建个人网站?  网站代码制作软件有哪些,如何生成自己网站的代码?  香港服务器选型指南:免备案配置与高效建站方案解析  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何设置并定期更换建站之星安全管理员密码?  如何选择适合PHP云建站的开源框架?  详解jQuery中基本的动画方法  香港网站服务器数量如何影响SEO优化效果?  存储型VPS适合搭建中小型网站吗?  建站主机是否等同于虚拟主机?  建站之星安装路径如何正确选择及配置?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  购物网站制作公司有哪些,哪个购物网站比较好?  C#怎么使用委托和事件 C# delegate与event编程方法  建站之星安装后如何配置SEO及设计样式?  Java解压缩zip - 解压缩多个文件或文件夹实例  ,南京靠谱的征婚网站?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何通过二级域名建站提升品牌影响力?  Swift开发中switch语句值绑定模式  山东云建站价格为何差异显著?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  建站之星北京办公室:智能建站系统与小程序生成方案解析  如何用好域名打造高点击率的自主建站?  C#如何在一个XML文件中查找并替换文本内容  网站制作网站,深圳做网站哪家比较好?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  兔展官网 在线制作,怎样制作微信请帖?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  已有域名如何快速搭建专属网站?  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  ,想在网上投简历,哪几个网站比较好?  如何快速搭建高效简练网站?  网站制作价目表怎么做,珍爱网婚介费用多少?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。