您的位置:首页 > 编程语言

面向对象的代码研究(一)

2016-03-15 23:11 513 查看
基础代码

var Circle = {
"PI":3.1415,
'area':function(r){
return this.PI * r *r;
};
}
console.log(Circle.area(1.0));
//直接量,最直观


稍微变体

//分步写法,新建对象,对象属性、方法赋值
var Circle = new object();
Circle.PI = 3.1415;
Circle.Area = function(r){
return this.PI * r * r;
}
console.log(Circle.Area(1.0));


再次变体

//工厂模式,稍微变体
var Circle = function(){
var obj = new object();
obj.PI = 3.1415;

obj.area = function(r){
return this.PI * r * r;
}
return obj;
}
var c = new Circle();
console.log(c.area(1.0));


下面是原型和构造的混合,加入了静态属性的访问

function Circle(r){
this.r = r;
}
Circle.PI = 3.1415;
Circle.prototype.area = function(){
return Circle.PI * this.r * this.r;
}
var c = new Circle(1.0);
console.log(c.area());


继承

function Person(){
var name = "default";

return {
getName : function(){
return name;
},
setName : function(newName){
name = newName;
}
}
};

var p = new Person();
p.setName("Tom");
alert(p.getName());

var Jack = function(){};
//继承自Person
Jack.prototype = new Person();
//添加私有方法
Jack.prototype.Say = function(){
alert("Hello,my name is Jack");
};
var j = new Jack();
j.setName("Jack");
j.Say();
alert(j.getName());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: