個人JavaScript筆記--面向對象

   
單例模式 ??(基於對象,不能批量生產)
 var person = {
            name: "ywb",
            sayHi: function () {
                alert();
            } ,
            0:'0',
            1 :'1'
  } 
 person.sayHi();
     for (var k in person) {
            //k是屬性名
            //獲得屬性值 person[k]
            alert(k);
            alert(person[k]);
        }
特色
1,咱們定義的這些屬性和值都是對咱們當前這個對象的描述
    定義屬性名的時候能夠用數字,把能夠用數字這種形式成爲類數組
2 , 對象的屬性之間有可能也是有關聯的
3,經過for in遍歷對象的時候,若是有數字的屬性名,就先遍歷數字
for in循環中獲取對象的屬性值,只能用obj[屬性名]的方式。
--------------------------------------------------------------------
工廠模式
定義一個方法,方法內部建立一個Object數據類型,而後返回這個對象。
       function factory(name, age) {
            var obj = new Object();
            obj.name = name;
            obj.age = age;
            obj.sayHi = function () {
                alert("hello," + name);
            }
            return obj;
        }
        var ywb = factory("ywb", 18);
        ywb.sayHi();
工廠模式全部的對象類型都是一個object
構造函數模式
我的理解:更像class同樣,建立對象去new一個class
經過new這種方式,出來的結果是一個實例。
       function person(name, age) {
            this.name = name;
            this.age = age;
            this.sayHi = function () {
                alert("hello," + name);
            }
        }
        var ywb = new person("ywb", 18);
        ywb.sayHi();
           alert(ywb instanceof Person ); //能夠肯定ywb是Person的實例
這時候,這個實例(對象)是誰,this就指向誰。this就是這個實例的上下文in
由於每一次實例化一個function,都會在內存中存這個function的字符串
原型模式
建立一個對象,咱們不只在內存中開闢了空間,將本身私有的鍵值對存進來,還有個系統自帶的屬性_proto_。
在聲明function時,它也有一個本身的屬性,就是prototype。
prototype也有_proto_屬性
      function factory(age) {
            this.name = "hart";
            this.age = age;
        }
        factory.prototype.sayHi = function () {
            alert("hello," + name);
        }
        factory.prototype.name = "ywb";
        var p1 = new factory(11);
       
        p1.__proto__ = null;
        alert(p1.name);
若是咱們的某個實例想獲取類中的prototype上定義的方法和屬性,咱們的原理是實例中默認的_proto_屬性去獲取。
調用一個方法或屬性,首先去其私有屬性上找,沒有找到纔去原型鏈上找。
Object是全部實例的基類。
p1.__proto__.name 就是去原型上找而不去屬性上找

 

若是你以爲個人文章對您有幫助,給點鼓勵,謝謝數組

相關文章
相關標籤/搜索