var Person ={ ???name :‘alan‘, ???sayHello:function(){ ???????alert(‘hello ‘+ this.name); ???}};var p = Object.create(Person);console.log(p);p.sayHello();
js封装(常见)
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
js封装(常见)
原文地址:http://www.cnblogs.com/alan-alan/p/7501626.html