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

建设网站能自学吗新产品的推广销售方法

建设网站能自学吗,新产品的推广销售方法,大连平台网站建设,盐城做网站哪家最好一、构造函数与原型对象之间的关系#xff1a; 有一个Star构造函数#xff0c;每一个构造函数里面都有一个原型对象#xff0c;是通过构造函数的prototype指向这个原型对象的 同样在这个原型对象里面也有一个属性叫constructor#xff0c;它又指回了构造函数 可以把构造函…一、构造函数与原型对象之间的关系 有一个Star构造函数每一个构造函数里面都有一个原型对象是通过构造函数的prototype指向这个原型对象的 同样在这个原型对象里面也有一个属性叫constructor它又指回了构造函数 可以把构造函数看为是父亲父亲通过prototype指向儿子原型对象告诉别人看我有一个厉害的儿子叫原型对象而原型对象里面又有一个属性constructor,又指回了构造函数说看我有一个厉害的老爹两人互相吹捧了一番 二、构造函数、实例对象与原型对象之间的关系 我们可以通过构造函数创建一个实例对象只要new了构造函数就可以产生一个实例对象所以构造函数又可以指向这个对象实例我们知道在这个实例对象中也有一个原型__proto__这个__proto__指向的是Star原型对象当然了我们对象实例里面也有一个constructor它可以指回构造函数 三、原型链 只要是对象就有__proto__原型指向原型对象 原型对象里面的__proto__原型指向的是Object.prototype function Star(uname,age){this.uname uname;this.age age; } Star.prototype.sing function(){console.log(我会唱歌); } var zxz new Star(张信哲,18); // 只要是对象就有__proto__原型指向原型对象 console.log(Star.prototype); console.log(Star.prototype.__proto__ Object.prototype);// true // 我们Star原型对象里面的__proto__原型指向的是Object.prototype console.log(Object.prototype.__proto__); // 我们的Object.prototype原型对象里面的__proto__原型 指向为null四、JavaScript对象成员查找机制规则 当访问一个对象的属性包含方法时首先查找这个对象自身有没有该属性 如果没有就查找它的原型也就是__proto__指向的prototype原型对象 如果还没有就查找原型对象的原型Object的原型对象 依次类推一直找到Object为止null __proto__对象原型的意义就在于为对象成员查找机制提供一个方向或者说一条路线。 var that; function Star(name,age){ // 在构造函数中里面的this指向的是实例对象 this.name name; this.age age; } Star.prototype.sing function(){ // 原型对象函数中的this指向的是实例对象mxq对象that this;console.log(我会唱歌); } // Star.prototype.sex 女 Object.prototype.sex 女 var mxq new Star(萌小七,18) // mxq.sex 女 console.log(mxq.sex);// 输出女 mxq.sing(); console.log(that mxq);// true原型对象this指向:在构造函数中里面的this指向的是实例对象原型对象函数中的this指向的是实例对象五、利用原型对象扩展内置对象 可以通过原型对象对原来的内置对象进行扩展自定义的方法。比如给数组增加自定义求偶数和的功能。 注数组和字符串内置对象不能给原型对象覆盖操作Array.prototype {}只能是Array.prototype.xxx function(){}的方式。 Array.prototype.sum function(){var total 0for(var i0;ithis.length;i){total this[i]}return total; } var arr [5,6,7]; arr.sum(); // 18六、继承 ES6之前并没有给我们提供extends继承我们可以通过构造函数原型对象模拟实现继承被称为组合继承用原型链实现对原型属性和方法的继承借用构造函数技术来实现实例属性的继承。 1、借用构造函数继承父类型属性 核心原理通过call()把父类型的this指向子类型的this这样就可以实现子类型继承父类型的属性。 call() 作用调用这个函数并且修改函数运行时this的指向 fun.call(thisArg,arg1,arg2,...)thisArg当前调用函数this的指向对象 arg1,arg2传递的其他参数 function fn(x,y){console.log(this);console.log(我想出去玩);console.log(xy) } var obj {name:萌小七 } fn();// this指向的是window,我想出去玩 // call()可以调用函数 fn.call();// this指向的是window,我想出去玩 // call() 可以改变这个函数的this指向此时这个函数的this就指向了obj这个对象 fn.call(obj,1,2);// {name: 萌小七} 我想出去玩 3举例说明借用父构造函数继承属性 function Father(name,age){// this指向父构造函数的对象实例this.name namethis.age age } function Son(name,age,score){// this指向子构造函数的对象实例Father.call(this,name,age)this.score score } var son new Son(小丸子,18,98) console.log(son); // 输出Son {name: 小丸子, age: 18, score: 98}此时子构造函数继承了父构造函数的属性 2、利用原型对象继承方法 Son.prototype new Father(); function Father(name,age){// this指向父构造函数的对象实例this.name namethis.age age } function Son(name,age,score){// this指向子构造函数的对象实例,构造函数来复制父类的属性给Son实例Father.call(this,name,age)this.score score } Father.prototype.money function(){console.log(父亲要挣钱) } // Son.prototype Father.prototype // 这样直接赋值会有问题如果修改了子原型对象父原型对象也会跟着一起改变 Son.prototype new Father(); // 如果利用对象的形式修改了原型对象别忘了利用constructor指回原来的原型对象 Son.prototype.constructor Son Son.prototype.school function(){console.log(孩子要上学) } var son new Son(小丸子,18,98) console.log(son); console.log(Father.prototype);优点 父类的方法可以被复用 父类的引用属性不会被共享 子类构建实例时可以向父类传递参数 缺点 第一次调用Father()给Son.prototype写入两个属性nameage。 第二次调用Father()给instance1写入两个属性nameage。 实例对象son上的两个属性就屏蔽了其原型对象Son.prototype的两个同名属性。所以组合模式的缺点就是在使用子类创建实例对象时其原型中会存在两份相同的父类实例的属性/方法。这种被覆盖的情况造成了性能上的浪费。 寄生组合继承最优方案 组合继承会有两次调用父类的构造函数而造成浪费的缺点寄生组合继承就可以解决这个问题。 核心在于inheritPrototype(son, father)让子类的prototype指向父类原型的拷贝这样就不会调用父类的构造函数进而引发内存的浪费问题。 function inheritPrototype(son, father) {// 修正子类原型对象指针指向父类原型的一个副本 (用object()也可以) son.prototype Object.create(father.prototype)// 增强对象弥补因重写原型而失去的默认的constructor属性son.prototype.constructor son } function Father(name,age){ // this指向父构造函数的对象实例 this.name name this.age age } function Son(name,age,score){ // this指向子构造函数的对象实例,构造函数来复制父类的属性给Son实例Father.call(this,name,age) this.score score } Father.prototype.money function(){console.log(父亲要挣钱) } inheritPrototype(Son, Father) Son.prototype.school function(){ console.log(孩子要上学) } var son new Son(小丸子,18,98) console.log(son); console.log(Father.prototype);【转载】https://mp.weixin.qq.com/s/FZTgakDp-jQc1Ic4NT7WYg
http://www.zqtcl.cn/news/382972/

相关文章:

  • 创建一个网站一般步骤有哪些互动网站策划
  • 文化传媒 网站设计宿迁网站建设价格
  • 网站开发五人分工是网站推广的案例
  • 海外网站制作seo技术
  • 包头网站建设熊掌号免费行情100个软件
  • 江门网站制作维护电子商务网站运营与管理
  • 动画网页制作网站常用的网络推广方法有
  • 一个设计网站多少钱sku电商是什么意思
  • 做网站优化有前景吗emlog和wordpress
  • 30天网站建设实录 pdf货源网站程序
  • 做企业网站需要多久培训机构 网站建设
  • 商业网站初期建设资金预算哈尔滨视频制作公司
  • 网站建设教程网哪个好wordpress 侧边栏 固定
  • 对网站主要功能界面进行赏析软件开发和app开发的区别
  • 西安市高陵区建设局网站如何重新安装电脑上的wordpress
  • 合肥网站快速优化排名全球人口多少亿
  • 中山网站关键字优化使用动易模版制作网站
  • 深圳营销网站建设报价广西住房建设厅网站
  • 爱站网appwordpress图片500
  • 北京网站排名制作图片点击就能跳转网站怎么做的
  • dw网站建设的数据库网站建设托管pfthost
  • 牛商网做网站成品网站1688入口
  • 涿鹿县建设局网站网络营销的定义和特点
  • 网站建设朋友圈怎么写深圳宝安区松岗
  • 苏州网站的建设哪个网站上做自媒体最好
  • 传送门网站是怎么做的wordpress seo标题
  • 曲靖 曲靖网站建设软件(app)开发视频一页网站怎么做
  • 互联网公司网站建设ppt模板下载wordpress 图片2m
  • 箱包官方网站模板平台开发软件
  • 佛山网站改版动漫视频制作软件