jQuery无new实例化

技术文档网 2021-04-25

最简化版本


var Person = function(name,age){

   return new init(name,age);

}

Person.prototype = {
   constructor: Person,
   version    : "1.0.0"
}

var init = function(name,age){
  this.name = name;
  this.age = age;
}

init.prototype = Person.prototype;

// 使用

var person = Person("liyanfeng",26);

console.dir(person); // init

console.log(person.name); // liyanfeng

console.log(person.age); // 26

console.log(person.version); // 1.0.0

console.log(p instanceof Person); // true

console.log(p.constructor === Person); // true

略简化版本

var Person = function(name,age){

   return new Person.prototype.init(name,age);

}

Person.prototype = {

   constructor : Person,
   version     : "1.0.0"

}


var init = Person.prototype.init = function(name,age){

  this.name = name;
  this.age = age;

  // return this; // 加不加都一样

}

init.prototype = Person.prototype; // 最关键的一句

// 使用

var person = Person("liyanfeng",26);

console.dir(person); // Person.init

console.log(person.name); // liyanfeng

console.log(person.age); // 26

console.log(person.version); // 1.0.0

console.log(p instanceof Person); // true

console.log(p.constructor === Person); // true

相关文章

  1. webpack相关知识

    能够处理JS文件的互相依赖关系 能够处理JS的兼容问题 安装 全局安装 npm install webpack -g 项目安装 npm install webpack --save-

  2. Javascript基础和ES6

    HTML的基础事件 onmouseover、onmouseout表示JS事件的鼠标移入鼠标移出 document.getElementById('id') JS中选择HTML的ID元素<in

  3. JavaScript编码规则

    JavaScript编码规则 目的:改善协作编码、代码质量。 var 声明变量必须用var。 防止变量变为全局变量,污染全局环境。 常量 基本类型number、string、boolean是常量值。对

  4. JavaScript获取和设置CSS属性

    获取样式 元素对象的宽高位置距离等属性 如offsetWidht、cilentWidht、scrollWidth…… let oWidth=obj.offsetWidth; 注意: 只能获取属

  5. javascript作用域、上下文、this和闭包详解

    词法作用域lexical scope 定义在词法阶段的作用域。词法作用域是变量和语句块在定义时所处的位置决定的。 全局 块级:在{}之内是一个块级作用域(ES6之前没有块级作用于只有函数内的局部作用

随机推荐

  1. webpack相关知识

    能够处理JS文件的互相依赖关系 能够处理JS的兼容问题 安装 全局安装 npm install webpack -g 项目安装 npm install webpack --save-

  2. Javascript基础和ES6

    HTML的基础事件 onmouseover、onmouseout表示JS事件的鼠标移入鼠标移出 document.getElementById('id') JS中选择HTML的ID元素<in

  3. JavaScript编码规则

    JavaScript编码规则 目的:改善协作编码、代码质量。 var 声明变量必须用var。 防止变量变为全局变量,污染全局环境。 常量 基本类型number、string、boolean是常量值。对

  4. JavaScript获取和设置CSS属性

    获取样式 元素对象的宽高位置距离等属性 如offsetWidht、cilentWidht、scrollWidth…… let oWidth=obj.offsetWidth; 注意: 只能获取属

  5. javascript作用域、上下文、this和闭包详解

    词法作用域lexical scope 定义在词法阶段的作用域。词法作用域是变量和语句块在定义时所处的位置决定的。 全局 块级:在{}之内是一个块级作用域(ES6之前没有块级作用于只有函数内的局部作用