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());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章