JQ如何不通过new来创建一个实例

var JQ = function () {
     //通过一个工厂函数来实例化,避免循环引用
     return  new JQ.prototype.init()
}
JQ.prototype = {
    //通过init返回this对象,指向init
    init:function(){
        console.log(this)
        //返回this就可以使用链式调用的方法
        return this
    },
    name:function () {
        console.log(this.age)
       return this
    },
    set:function () {
        console.log(this.add)
      return this
    },
    age:20,
    add:'wkh'
}
//将init的原型指向jq的原型,从而实现继承jq原型上的方法和属性
JQ.prototype.init.prototype = JQ.prototype
JQ().name().set()

 

你可能感兴趣的:(js)