Skip to content

jQuery无new实例化

LYF edited this page Jun 29, 2016 · 2 revisions

最简化版本

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
Clone this wiki locally