javascript封装类的技巧:具有私有成员、私有方法、特权属性、特权方法、原型对象、静态成员,最重要的是不会失去封装的优点,并且不影响继承
2014-11-12 17:35
916 查看
javascript 封装类的技巧:具有私有成员、私有方法、特权属性、特权方法、原型对象、静态成员,最重要的是不会失去封装的优点,并且不影响继承,利用道格拉斯的动态原型模式和js的闭包特性,缺点是不能使用strict mode。
<html>
<head><title>javascript 封装类的技巧:具有私有成员、私有方法、特权属性、特权方法、原型对象、静态成员,最重要的是不会失去封装的优点,并且不影响继承</title>
</head>
<body>
javascript 封装类的技巧:具有私有成员、私有方法、特权属性、特权方法、原型对象、静态成员,最重要的是不会失去封装的优点,并且不影响继承,
利用道格拉斯的动态原型模式和js的闭包特性,缺点是不能使用strict mode。
<script>
function Fun(name,age){
//note:不能使用strict mode
var thisClass = arguments.callee;
var _self = this;
//私有属性
var siyou = "我是私有属性";
//共有属性
this.name = name;
this.age = age;
//私有方法
function service(p){
//to do something use private:siyou
return siyou + "-" + p;
}
//特权方法(各个对象特有的)
this.someMethod = function(){
//Ignore.
};
//原型对象
if(typeof this.getOne != "function"){
thisClass.prototype.getOne = function(p){
//调用私有方法
document.write(service(p) + "<br/>");
//调用静态方法
document.write(thisClass.staticMd() + "<br/>");
return this.name + " : " + this.age;
};
}
//静态成员
if(!thisClass.staticMd){
thisClass.staticMd = function(){
return "我是静态方法";
};
}
}
var a = new Fun("licheng",11);
var b = new Fun("xiaofei",22);
alert(a.getOne("a"));
alert(b.getOne("b"));
</script>
</body>
</html>
<html>
<head><title>javascript 封装类的技巧:具有私有成员、私有方法、特权属性、特权方法、原型对象、静态成员,最重要的是不会失去封装的优点,并且不影响继承</title>
</head>
<body>
javascript 封装类的技巧:具有私有成员、私有方法、特权属性、特权方法、原型对象、静态成员,最重要的是不会失去封装的优点,并且不影响继承,
利用道格拉斯的动态原型模式和js的闭包特性,缺点是不能使用strict mode。
<script>
function Fun(name,age){
//note:不能使用strict mode
var thisClass = arguments.callee;
var _self = this;
//私有属性
var siyou = "我是私有属性";
//共有属性
this.name = name;
this.age = age;
//私有方法
function service(p){
//to do something use private:siyou
return siyou + "-" + p;
}
//特权方法(各个对象特有的)
this.someMethod = function(){
//Ignore.
};
//原型对象
if(typeof this.getOne != "function"){
thisClass.prototype.getOne = function(p){
//调用私有方法
document.write(service(p) + "<br/>");
//调用静态方法
document.write(thisClass.staticMd() + "<br/>");
return this.name + " : " + this.age;
};
}
//静态成员
if(!thisClass.staticMd){
thisClass.staticMd = function(){
return "我是静态方法";
};
}
}
var a = new Fun("licheng",11);
var b = new Fun("xiaofei",22);
alert(a.getOne("a"));
alert(b.getOne("b"));
</script>
</body>
</html>
相关文章推荐
- JavaScript 对象方法 类方法 原型方法的区别;私有属性 公有属性 公有静态属性的区别
- JavaScript 对象方法 类方法 原型方法的区别;私有属性 公有属性 公有静态属性的区别
- javascript 原型方法,对象方法,类方法;私有属性,公有属性,公有静态属性
- Javascript 构造函数,公有,私有特权和静态成员定义方法
- Javascript 面向对象(共有方法,私有方法,特权方法,静态属性和方法,静态类)示例讲解
- php函数、类和对象以及类的封装、继承、类的静态方法、静态属性
- javaScript【创建对象、创建类、成员变量、方法、公有和私有、静态】
- php函数、类和对象以及类的封装、继承、类的静态方法、静态属性
- javascript的函数、创建对象、封装、属性和方法、继承
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性
- javaScript【创建对象、创建类、成员变量、方法、公有和私有、静态】
- javascript的函数、创建对象、封装、属性和方法、继承
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别
- javaScript【创建对象、创建类、成员变量、方法、公有和私有、静态】
- javascript的函数、创建对象、封装、属性和方法、继承
- javascript的函数、创建对象、封装、属性和方法、继承
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别
- 对象方法、类方法、原型方法 && 私有属性、公有属性、公有静态属性
- Javascript的私有变量和方法、共有变量和方法以及特权方法、构造器、静态共有属性和静态共有方法