JS之Object基礎知識

2021-10-09 21:50:18 字數 1726 閱讀 3929

詳細方法查詢官方文件

1、物件直接量(或者叫物件字面量)

var obj=

;console.

log(obj)

;<

/script>

列印結果如下圖

2、使用new操作符+object()方法建立

3、object.create()函式,可以傳兩個引數是乙個靜態函式

第乙個引數是物件的原型,第二個引數可以用以對物件的屬性進行進一步描述

var obj = object.

create()

;<

/script>

4、使用工廠模式建立

function

createperson

(name, age, job)

;return o;

}var person1 =

createperson

("nicholas",29

,"software engineer");

<

/script>

5、使用建構函式模式建立

function

person

(name, age, job);}

var person1 =

newperson

("nicholas",29

,"software engineer"

);

例項成員可以被重寫

所有物件,都擁有object的所有例項成員預設情況下,該方法返回"[object object]";

預設情況下,返回該物件本身

在js中,當自動的進行型別轉換時,如果要對乙個物件進行轉換,實際上是先呼叫物件的valueof方法,然後呼叫返回結果的tostring方法,將得到的結果進行進一步轉換。

var obj =

} console.

log(obj +1)

;//返回124

console.

log(obj.valueof.

tostring()

+1);

//返回1231

<

/script>

為什麼兩個返回值會不一樣呢?

先解釋一下為什麼返回1231,因為首先瀏覽器會先呼叫obj.valueof()方法,此時得到的會是123,但123是原始型別,原始型別呼叫乙個方法先需要將原始型別轉變成乙個包裝類,用包裝類把它包裝起來,所以"123".tostring()方法實際上就是new number(123).tostring()方法,所以console.log(obj.valueof.tostring() + 1);才返回1231。

那124又是怎麼得到的呢?

如果呼叫了valueof已經得到了原始型別,則不再呼叫tostring。

所以console.log(obj + 1); 就只呼叫了valueof得到了123,然後123+1=124

JS基礎知識

本週抽空學習了一些js新手需要知道的知識 1 js中用 來賦值,例如var a 1.2 迴圈結構和c 基本相同。3 簡單 基本 資料型別 number string boolean undefined null。4 複雜 引用 資料型別 object array date function。還有一些...

js基礎知識

1.ecmascript 直譯器 0,1 幾乎沒有相容性問題 2.dom 文件,物件,模型 document object model 相容性一般 3.bom 瀏覽器 物件,模型 browser object model 完全不相容 number string boolean function ob...

js基礎知識

1.型別和型別轉換 1 值型別 string 字串 number 數值 boolean 布林值 undefined null 2 引用型別 array 陣列 object 物件 function 函式 2.null 和 undefined 1 undefined表示未定義。對於沒有初始化的變數 函式...