专栏首页跟牛老师一起学WEBGISjs中的面向对象程序设计

js中的面向对象程序设计

概述

面向对象的语言有一个标志,那就是他们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。

对象的创建

1、工厂模式

//工厂模式
    function getPerson(name,age){
        //定义age不能直接访问
        var person = {
            name:name,
            _age:age,
            getName:function(){
                return this.name;
            }
        };
        Object.defineProperties(person,{
            _age:{
                value:age
            },
            age:{
                get:function(){
                    return this._age;
                },
                set:function(age){
                    this._age = age;
                }
            }

        });
        return person;
    }
        var p2 = getPerson("person2",12);
        console.log(p2.getName());

2、构造函数模式

 //构造函数模式
    function Person(name,age){
        this.name = name;
        this.age = age;
        this.getName = getName;
    }
    var p1 = new Person("person1",12);
    console.log(p1.getName());

3、原型模式

//原型模式
    function People(){};
    People.prototype = {
        name:"",
        age:0,
        getName:getName
    }
        var p3 = new People();
        p3.age = 12;
        p3.name="person3";
        console.log(p3.getName());
        console.log("sex" in p3);

4、构造函数+原型

//*构造函数+原型模式*//
    function Student(name,age){
        this.name = name;
        this.age = age;
    }
    Student.prototype ={
        constructor:Student,
        getName:getName
    }
var stu = new Student("student",18);
        console.log(stu.getName());

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Echart在Openlayers的应用-航班的炫光特效

    在前两篇文章中讲到了echart在openlayers2中的应用,地图统计图与热力图的实现,在本文中介绍openlayers中结合echart实现航班的炫光特效...

    lzugis
  • OL3矢量图层样式自定义

    lzugis
  • OL2中实现百度地图ABCD marker的效果

    上文中提到了在Arcgis for JS中实现百度地图ABCD的marker效果,在本文,讲述如何在OpenLayers2中实现类似的效果。

    lzugis
  • python yaml用法详解

    YAML是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互。YAML类似于XML,但是语法比XML简单得多,对于转化成数组或可...

    py3study
  • 用好Jackson,操作Json节省一半时间

    目前解析Json的工具包有,Gson,FastJson,Jackson,Json-lib。综合来看,Jackson的性能较优,稳定性也比较高,而且spring-...

    Java识堂
  • 照虎画猫写自己的Spring——依赖注入

    前言 上篇《照虎画猫写自己的Spring》从无到有讲述并实现了下面几点 声明配置文件,用于声明需要加载使用的类 加载配置文件,读取配置文件 解析配置文件,需要将...

    JackieZheng
  • 用好Jackson,操作Json节省一半时间

    目前解析Json的工具包有,Gson,FastJson,Jackson,Json-lib。综合来看,Jackson的性能较优,稳定性也比较高,而且spring-...

    捡田螺的小男孩
  • Java基础-07(01).总结private,this,封装,static,成员方法变量,局部变量匿名对象

    1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成...

    Java帮帮
  • Spring-IOC(2)

    scope <!--Spring使用scope标签来制定bean的作用域(默认为Singleton)--> <bean id="singletonBean" c...

    Java帮帮
  • 《Java从入门到放弃》框架入门篇:Struts2的基本访问方式

    十方上下

扫码关注云+社区

领取腾讯云代金券