javascript自定義對象以及建立對象的新類型(引用類型)

1. javascript自定義對象

有必定js基礎的童鞋都知道怎麼創造對象,在這篇文章中我想詳細的闡述一下。javascript

建立對象--方法一

var obj=new Object()

該方法只須要使用new操做符後接Object構造函數java

建立對象--方法二

var obj={}

js提供了使用字面量語法來建立對象:一對花括號{},字面量語法比較簡潔,不須要new一個對象。函數

建立對象屬性並賦值

obj.first="a";
obj.second="b";

缺點:js並不會告知屬性名是否有之外的拼寫錯誤,而只能用錯誤的屬性名建立一個新的屬性名,這樣就會致使難以追蹤存在的錯誤,因此建立屬性的時候要謹慎寫錯this

建立對象的方法

也能夠用這種方法爲方法賦值,只是說賦的是函數而不是其餘的類型值,以下:prototype

obj.eat=function(){
console.log("eating");
}

function沒有名稱,稱爲匿名函數,就自己而言,匿名函數是一種錯誤的語法,除非將它賦給一個變量
建立obj對象的完整代碼:code

var obj={};
obj.first="a";
obj.second="b";
obj.eat=function(){
console.log("eating");
}

上述代碼用了4條語句完成一個完整的對象,若是用字面量符號法來定義整個對象,能夠將一條語句縮減爲一條語句。對象

var obj={
    first:"a",
    second:"b",
    eat:function(){
    return this.first+""+this.second;
    };
};

上述代碼採用屬性,冒號,值的方式定義屬性和方法,注意使用逗號來分隔各個屬性和方法的。ip

2. 建立對象的新類型(引用類型)

引用類型由三部分組成

  • 構造函數
  • 方法定義
  • 屬性

定義引用類型

首先要建立構造函數,以下:原型

function person(first,second){
    this.first=first;
    this.second=second;
    this.prototype.eat=function(){
        console.log("eating");
    }
}

this指代的就是person, 每一個對象都有prototype屬性,但該屬性只對構造函數有用,能夠將person.prototype當作person對象的實際原型,賦給person.prototype的任何屬性和方法對於person對象均可用,person1和person2能夠共享他們io

相關文章
相關標籤/搜索