jq无new构造

正常版本构造一个实例对象

function jQuery () {
            this.name = 'mike';
            this.age = 18;
          }
          jQuery.prototype.son = 'peter';
          
          
          console.log(new jQuery().name);
          console.log(new jQuery().age);
          console.log(new jQuery().son);

无new构造

function jQuery () {
            return new jQuery.prototype.init();
          }
          jQuery.prototype.init = function () {
            this.name = 'mike';
            this.age = 18;
          }
          jQuery.prototype.init.prototype = jQuery.prototype;
          jQuery.prototype.son = 'peter'
          console.log(jQuery().name);
          console.log(jQuery().age);
          console.log(jQuery().son);

看起开很丑,但一旦用闭包包裹起来.
var jQuery = (function () {
            
           function jQ () {
            return new jQ.prototype.init();
          }
          jQ.prototype.init = function () {
            this.name = 'mike';
            this.age = 18;
          }
          jQ.prototype.init.prototype = jQ.prototype;//语句1
          jQ.prototype.son = 'peter'
           return jQ;
          })()
          console.log(jQuery().name);
          console.log(jQuery().age);
          console.log(jQuery().son);

这写得相当的巧妙了.
语句1的作用是,如果我在jQuery.prototype上扩展方法,确保实例能够调用.

其实init函数没必要一定写在原型链上吧?
var jQuery = (function () {
            
           function jQ () {
            return new init();
          }
           function init () {
            this.name = 'mike';
            this.age = 18;
          }
          init.prototype = jQ.prototype;
          jQ.prototype.son = 'peter'
           return jQ;
          })()
当然,把init定义在原型链上,从结构上可能定义在这里更合理,或者就是想秀?确实很秀.
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 从帝都到平江,因为是异地,陪伴便弥足珍贵。一个季度不到十天的假,恨不得天天守在她身边,接她上下班,看她笑闹,带她去...
    LAJILIXIN阅读 1,414评论 6 12
  • 2018年3月16日 星期五 晴 今天我看了你的数学练习本,错题特别多,妈妈就有点生气,可是...
    紫茎泽兰单阅读 158评论 0 0
  • 稚童身上的奶香味让人着迷,他禁不住在稚童的脖颈间深吸几口气,紧了紧圈住稚童的手臂,让柔软的肌肤紧贴着自己的胸膛,他...
    颜人青阅读 1,093评论 2 3

友情链接更多精彩内容