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

什么是网站建设的重点商城微网站如何做

什么是网站建设的重点,商城微网站如何做,做网站的技术盏,汽车cms系统在 JavaScript 中#xff0c;最常见的新建一个对象的方式就是使用花括号的方式。然后使用’ . 的方式往里面添加属性和方法。可见以下代码#xff1a; let animal {}; animal.name Leo; animal.energe 10;animal.eat function (amount) {console.log(${this.name} is ea…在 JavaScript 中最常见的新建一个对象的方式就是使用花括号的方式。然后使用’ . 的方式往里面添加属性和方法。可见以下代码 let animal {}; animal.name Leo; animal.energe 10;animal.eat function (amount) {console.log(${this.name} is eating.)this.energe amount }animal.sleep function (length) {console.log(${this.name} is sleeping.)this.energe length }animal.play function (length) {console.log(${this.name} is playing.)this.energe - length }但通常的应用场景下你会需要生成多种动物。这则需要把以上的逻辑抽象成一个函数。可见以下代码生成了 leo 和 snoop 两个动物。 function Animal(name, energy){let animal {};animal.name name;animal.energy energy;animal.eat function (amount) {console.log(${this.name} is eating.)this.energy amount}animal.sleep function (length) {console.log(${this.name} is sleeping.)this.energy length}animal.play function (length) {console.log(${this.name} is playing.)this.energy - length}return animal; }const leo Animal(Leo, 7); const snoop Animal(Snoop, 10)但是按照上面代码每次新创建一个animal就需要把里面的eat、sleep、play方法都会被重新创建一遍。 因为eat、sleep、play方法都很相似所以我们可以把他们放在一个animalMethods里面这样只需要在内存里面创建一次。然后每次我们需要创建一个新动物我们只是指向了animalMethods里面的方法而不是重新创造这些方法。 const animalMethods {eat(amount) {console.log(${this.name} is eating.)this.energy amount},sleep(length) {console.log(${this.name} is sleeping.)this.energy length},play(length) {console.log(${this.name} is playing.)this.energy - length} } function Animal(name, energy){let animal {};animal.name name;animal.energy energy;animal.eat animalMethods.eat;animal.sleep animalMethods.sleep;animal.play animalMethods.play;return animal; }以上代码中比如animal增加一个方法poop就需要到Animal函数 里面增加 animal.poop animalMethods.poop 。 如果想要Animal总能指向 animalMethods里面的任何一个方法可以使用Object.create()传入animalMethods使得在Animal里面找不到对应属性或方法时就会去animalMethods查找并调用对应方法。 const animalMethods {eat(amount) {console.log(${this.name} is eating.)this.energy amount},sleep(length) {console.log(${this.name} is sleeping.)this.energy length},play(length) {console.log(${this.name} is playing.)this.energy - length} } function Animal(name, energy) {let animal Object.create(animalMethods)animal.name name;animal.energy energy;return animal; } const leo Animal(Leo, 7); console.log(leo.play(7)) //Leo is playing.以上的用法就是JavaScript 原型prototype的由来。 那么什么原型它就是函数上的一个属性指向一个对象。 既然原型是每个函数都有的属性那么与其单独管理 animalMethods 为什么我们不把 animalMethods 放到函数的原型上呢 function Animal(name, energy) {let animal Object.create(Animal.prototype)animal.name name;animal.energy energy;return animal; }Animal.prototype.eat function (amount) {console.log(${this.name} is eating.)this.energy amount } Animal.prototype.sleep function (length) {console.log(${this.name} is sleeping.)this.energy length } Animal.prototype.play function (length) {console.log(${this.name} is playing.)this.energy - length }const leo Animal(Leo, 7); console.log(leo.eat(5)) //Leo is eating.以上代码告诉了我们三点 如何创建一个构造函数构造函数就是构造一个对象 如何将方法添加到构造函数的原型上egAnimal.prototype.eat(){…} 如何使用Object.create()指向函数原型。 这三点的目的就是为了构造函数的所有实例都能共享实例上的方法。 接下来会引入关键词 new 来对上面代码再进行进一步优化。使用new关键词js会自动做Object.create()和return的动作并且需要使用this对象来替换原本的animal对象。 function Animal(name, energy) {// let this Object.create(Animal.prototype) //这一步的作用1、创建对象 2、指向Animal.prototypethis.name name;this.energy energy;// return this; //输出创建的对象 }Animal.prototype.eat function (amount) {console.log(${this.name} is eating.)this.energy amount } Animal.prototype.sleep function (length) {console.log(${this.name} is sleeping.)this.energy length } Animal.prototype.play function (length) {console.log(${this.name} is playing.)this.energy - length }const leo new Animal(Leo, 7); const snoop new Animal(Snoop, 10) console.log(leo.sleep(15)) //Leo is sleeping.以上这些操作就是基本上创建了一个class。在es6JavaScript有了class关键词。接下来就用class来重构以上的代码。 class Animal {constructor(name, energy) {this.name namethis.energy energy}eat(amount) {console.log(${this.name} is eating.)this.energy amount}sleep(length) {console.log(${this.name} is sleeping.)this.energy length}play(length) {console.log(${this.name} is playing.)this.energy - length} }const leo new Animal(Leo, 7); const snoop new Animal(Snoop, 10) console.log(leo) //Animal { name: Leo, energy: 7 } console.log(leo.sleep(1)) //Leo is sleeping.既然可以用js建造class那么为什么还需要花这么多时间了解上面的prototypethisnew原因是class是function的语法糖提供了更便捷的方式创建对象。class最终会被编译为function其中的方法会成为prototype上面的共享方法。
http://www.fuzeviewer.com/news/54125/

相关文章:

  • 设计与制作网站进一步加强网站内容建设
  • 珠海网站建网站被黑刚恢复排名又被黑了
  • 去哪找网站建设公司软文推广例子
  • 北京网站建设最便宜的公司哪家好2022热门网页游戏排行榜
  • 13. Spring AI 的观测性 - Rainbow
  • 开网店要建网站平台吗活动 wordpress主题
  • 怎样建设网站是什么意思微网站和手机站区别
  • 注册完域名之后怎么找到网站中国保险公司排名前十名
  • 重庆天气专业网站建设电子商务网站成本
  • 上海做网站最专业wordpress所有分类
  • 义乌建设公司网站如何建开发手机网站首页
  • 企业网站php模板杭州网站推广排名
  • 营销型网站单页面电子商务营销师证书含金量
  • 蔬菜基地做网站合适吗天津南开做网站
  • 17做网店一样的网站门户网站建设 管理 自查报告
  • 黑龙江省建设厅网站临海手机网站
  • 网站播放视频插件免费出装修效果图
  • 建设网站会员有什么做任务的网站吗
  • 医院网站改版建设方案seo软件定制
  • 做网站建设跑业务开发公司保障员工安全的措施
  • 重庆网站建设哪家公司那家好上海网络营销seo
  • python:crawl4ai安装
  • 西部数码网站管理助手2wordpress迅雷下载
  • 上海app软件开发网站建设优化是什么鬼
  • 嘉定区建设局网站wordpress 查看大图
  • python 做网站合适吗北京建设银行纪念钞预定官方网站
  • 济宁建设企业网站wordpress如何在地址栏中加网站logo
  • 建设网站写需求分析报告如何做网站维护
  • 厦门律师网站建设wordpress头像修改
  • 杭州网站建设手机版查工程中标信息哪个网站