基于原生JavaScript封装对象模板

xiaoxiao2021-02-27  119

//样例使用对象 onload = function(){ var p1 = new Person(‘zzh’,12); p1.sayWord(); console.log(p1.drink);

Person.test2(); console.log(Person.eat); p1.getHome(); console.log(p1.age); var p2 = new Person('hsy',12); p2.getHome(); console.log(p2.age); console.log(p1.test == p2.test); // true 证明静态私有变量共享性

} //创建Person对象 var Person = (function(){

// 静态私有属性(只能在内部调用) var home = "china"; // 静态私有方法(只能在内部调用) function sayHome(name){ console.log(name + "'s home in " + home); } // 构造函数 function _person(name,age){ var _this = this; //构造函数安全模式,避免创建时候丢掉new关键字 if(_this instanceof _person){ // 公有属性和方法 _this.name = name; _this.getHome = function(){ sayHome(_this.name); }; _this.test = sayHome; //用于测试 // 构造器 _this.setAge = function(age){ _this.age = age + 12; }(age); }else{ return new _person(name,age); } } // 静态方法 只能被类访问 _person.test2 = function(){ console.log("you are so man"); } // 静态属性 只能被类访问 _person.eat = "eat some banana"; _person.prototype.test3 = function(){ // ??????? console.log("you are a girl"); } // 静态公共属性方法 _person.prototype = { constructor:_person, drink:'water', // 可以通过对象进行访问 不能通过类名进行访问 sayWord:function(){ // 可以通过对象进行访问 不能通过类名进行访问 console.log('you are a boy'); } } return _person;

})();

转载请注明原文地址: https://www.6miu.com/read-13510.html

最新回复(0)