js裡面object物件

2021-06-16 15:58:46 字數 2712 閱讀 1606

由於整個js都是由物件構成的,所以說可以用以下函式檢視某個物件所有的屬性

function showallproper(objname,strobjname)

使用時候

showallproper(mebera,"mbera")

就會傳回所有的屬性

建立乙個object物件大體有三種方法

1. 呼叫new運算子和object物件  var obj=new object() 或var obj=new objct(value)

object物件沒有任何屬性,需要手動新增屬性,方法如下

var membera=new object()

membera.name="tony";

membera.age=25;

或mebera["name"]="tony";

mebera.["age"]=25;

2. 用大括弧來直接描述屬性和方法 var objectname=;

屬性名稱和屬性值用冒號: 分開,每組屬性用 逗號,分隔

如下所示

var membera=,

};3. 自定義乙個建構函式,然後和第一種方式一樣用new來建立

function funcname( param1,param2,...,paramn)

宣告完構建函式後,可以定義此物件型別物件:

var obj=new funcname(value1,value2,...,valuen);

定義物件的方法和定義物件屬性很像,只要將函式名稱指定給物件就可以了,或者直接定義函式

如下function rect(w,h)

或function calarea

function rect(w,h)

注意定義完物件後可以使用delete來刪除 屬性或者物件

delete object_name;

delete object_name.property_name;

建立物件共同的屬性和方法prototype

屬性物件prototype就是讓我們定義相同型別物件公用的屬性和方法

function_name.prototype.property_name=proterty_value

具體如下

function calarea

function rect(w,h)

rect.prototype.area=calarea;

建立物件公用屬性後,可以用下面方式來參考值

function_name.prototype.poperty_name

或者object_name.property_name

當讀取公用的屬性值或是呼叫公用的方法時,兩種方式都可以,動腦是如果要更改公用的屬性值,或者更改方法的定義

應該使用第一種方式,因為第二種方式會建立新的物件屬性或者方法定義,並賦值。

新的物件屬性是屬於個別物件的,隊日他們的名稱和公用物件的屬性名稱一樣,但它不是公用物件,類似於物件繼承的override

建立類class的屬性和方法

方法如下

function_name.property_name=proterty_value;

function_name.method_name=method_definition;

其中function_name為已經存在的建構函式名稱

例如function circle()

定義乙個為pi的類屬性

circle.pi=3.14

定義乙個為cal的類屬性

circle.cal=function(r);

其中this.pi和circle.pi是一樣的,這裡的this不是呼叫此方法的物件參考,而是circle本身的參考.

物件的繼承

乙個物件的構建函式可以借助它的prototype物件繼承某個物件的所有屬性

subfunction_name=new superfunction_name(...)

propotype 物件是用力定義由建構函式建立物件的共用屬性和方法,所以將乙個物件指定給它,使的prototype物件擁有此物件的所有屬性和功能

例如function circle(radius)

funcion colorcircle(radius,color)

function _tostring

colorcircle.prototype=new circle(0)  // 或者 new circle,繼承circle所有的屬性

colorcircle.prototype.tostring=_tostring;  // 過載tostring

constructor是prototype物件的乙個屬性,是物件建構函式的參考

function somefunc()

x=new somefunc();

alert(x.constructor==somefunc);

會顯示true

但是如下

function superfunc()

function subfunc()

x=new subfunc();  // x.constructor==subfunc

subfunc.prototype=new superfunc;

y=new subfunc();  // y.constructor==superfunc

alert(x.constructor==y.constructor);

會顯示false

因為subobject的prototype變成了新建立

js內建物件 Object

js中的一些內建方法還是挺好用的,使用它們有時候會節省我們很多時間,還有減少 量 一 object.keys obj 獲取乙個物件的key值,但是引數obj必須是可列舉的物件,他會返回乙個包含物件自身的所有可列舉屬性值的陣列。let obj abc 123 let keys object.keys ...

js如何列印object物件

js除錯中經常會碰到輸出的內容是物件而無法列印的時候,光靠alert只能列印出object標示,卻不能列印出來裡面的內容,甚是不方便,於是各方面整理總結了如下乙個函式,能夠將陣列或者物件這類的結果一一列印出來,具體 如下 function writeobj obj alert description...

Object裡面的方法

object裡面有12個方法,沒寫完,寫一些部分代表 tostring 輸出物件的位址字串 hashcode碼 equals 用的是 比較的是引用,在有些類裡面是重寫了這個方法的,重寫了的比較的是值 clone 淺複製,建立並返回這個物件的乙個副本 protected修飾 object 預設構造方法...