面向对象的代码研究

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的代码研究相关的知识,希望对你有一定的参考价值。

基础代码

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());

 



以上是关于面向对象的代码研究的主要内容,如果未能解决你的问题,请参考以下文章

面向对象的代码研究

计算机专业研究生核心能力培养——如何更好的写代码

面向面试编程代码片段之GC

Java中面向对象的三大特性之封装

PHP面向对象之选择工厂和更新工厂

python之路之前没搞明白4面向对象(封装)