最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • JS从0开始(十二)继承深入、圣杯模式、模块化

    正文概述 掘金(我会接网线)   2020-12-16   801

    一.原型深入

    原型实际上是构造函数上的一个属性,只不过这个属性是对象而已


    我们经过实例化构造函数之后,出来的对象完全继承于构造函数的原型prototype:

    JS从0开始(十二)继承深入、圣杯模式、模块化
    1. 上图中 p本来是没有属性的,但是它继承了原型。
    2. 原型其实是在构造函数之上的:name属性 实际上并没有在 p这个对象上面 它是在p对象上面的原型链(proto)上面的原型上

    二.继承深入

    有些对象继承不需要完全继承
    普通原型链继承的方式并不友好

    1.公共原型

    这样会继承一些原型属性,但是如果更改原型里面属性的话,所有的对象都会更改。如teacher的age也变成了18;

    JS从0开始(十二)继承深入、圣杯模式、模块化 继承了原型,但并没有继承实例化对象的属性,因为他们构造函数的原型传值:Student.prototype = Teacher.prototype
    实例传值的情况,即Student.prototype = teacher; 就会传达实例化对象的属性: JS从0开始(十二)继承深入、圣杯模式、模块化 经上所述:不管是实例化传值(teacher)还是原型传值(Teacher.prototype) , 当改变子类的原型时(student.prototype.age = 18)父类原型链里面都会受到影响。虽然原型传值 的实例不会受到影响。
    那如何让父类的原型链不受到影响呢?这样我们就要用到圣杯模式了:

    2.解决继承: 圣杯模式

    1.定义一个缓冲构造函数
    2.将Teacher.prototype赋值给缓冲的原型
    3.实例化缓冲实例对象
    4.将实例化的缓冲对象赋值给Studet.prototype
    其实就是找了个中间键,实例化了以后,再赋给Student JS从0开始(十二)继承深入、圣杯模式、模块化 JS从0开始(十二)继承深入、圣杯模式、模块化


    Student和Teacher不是同层的:Buffer.prototype和Teacher.prototype是同层的,Student和buffer是同层的。
    所以Student 更改不会影响到buffer的构造函数 Buffer(),更不会影响到Teacher

    3.圣杯模式的企业级写法:模块化开发

    JS从0开始(十二)继承深入、圣杯模式、模块化(1.30.50) 立即执行函数: 自执行,将自己封闭在一个作用域里面,里面声明的变量更外界没关系、互不影响,这种开发的方法叫做模块化开发

    4.CSS的圣杯布局模式

    目的是为了让三栏(左边右边中间)排成一排,同时依照三栏中最高的来设置高度 (55.28)
    一般网页布局中 有上(top)中(content)下(foot),我们就是在content中进行: JS从0开始(十二)继承深入、圣杯模式、模块化 对应步骤出现的问题: 5.JS从0开始(十二)继承深入、圣杯模式、模块化 8. content加些内容,导致被撑开,从而高度不一样 JS从0开始(十二)继承深入、圣杯模式、模块化 10. left、right仍然未被撑开,只是它所在的盒子变大了 JS从0开始(十二)继承深入、圣杯模式、模块化

    5. 实战:模块化开发

    以下这三个功能整合到一个JS文件中: 打印一个参数值以内能被3/5/7整除的数
    打印斐波那契数列的第N位
    打印从0到一个数的累加值


    起源地下载网 » JS从0开始(十二)继承深入、圣杯模式、模块化

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元