var Person ={ name :‘alan‘, sayHello:function(){ alert(‘hello ‘+ this.name); } }; var p = Object.create(Person); console.log(p); p.sayHello();
function Person (info){ this._init_(info); } Person.prototype ={ constructor:Person, _init_:function(info){ this.names = info.name; this.age = info.age; this.gender = info.gender; }, sayHello:function(){ // console.log(‘hello‘); alert(‘hello‘); } // demo:function(){}, }; var clzhang = new Person({ name:‘clzhang‘, age:‘1111‘, gender:‘‘ }); clzhang.sayHello()//hello
巧妙
// 类jQuery 封装 var Person = function (info){ return new Person.prototype.init(info); }; Person.prototype ={ constructor:Person, init:function(info){ this.names = info.name; this.age = info.age; this.gender = info.gender; }, sayHello:function(){ // console.log(‘hello‘); alert(‘hello2‘); } // demo:function(){}, }; Person.prototype.init.prototype = Person.prototype; var clzhang = new Person({ name:‘clzhang‘, age:‘1111‘, gender:‘‘ }); clzhang.sayHello()//hello2
闭包
var Person = (function(window){ var Person = function (info){ return new Person.prototype.init(info); }; Person.prototype ={ constructor:Person, init:function(info){ this.names = info.name; this.age = info.age; this.gender = info.gender; }, sayHello:function(){ // console.log(‘hello‘); alert(‘hello3‘); } // demo:function(){}, }; Person.prototype.init.prototype = Person.prototype; return Person; })(); var clzhang = Person({ name:‘clzhang‘, age:‘1111‘, gender:‘‘ }); clzhang.sayHello()//hello3
时间: 2024-10-26 04:13:13