js中什么是對象,對象的概念是什么?


我們一直在用對象 可是你真的理解對象嗎,js中有一個說法是一切皆對象,其實這里說的應該是

一切皆可看作對象

對象就是可以擁有屬性和方法的一個集合 士兵就是一個對象,它擁有身高體重的屬性,保家衛國,吃飯睡覺的動作方法

在座的各位都是對象,世界上的萬物都可看作對象,所以說,編程世界多姿多彩

也可以理解為無序的鍵值對  var obj={width:100,height:200,say:function(){//code}};

就相當於 var obj={};

obj.width=100;   //width屬性值200

obj.height=200;   //height屬性值200

obj.say=function(){  //say方法

//code

並且對象的屬性和方法可以改變

obj.width=200;

方法同理

概念理解了,其實代碼就容易理解了。

現在說說一切皆可看作對象是怎么來的,我說說我自己的理解

數據類型分為兩種 基本數據類型和引用類型

基本數據分為stringnumberbooleannullundefined

基本類型(基本數值、基本數據類型)是指非 對象 並且無方法的數據

一個一個說

  var up="he is a super man";
  var output=up.charAt(5);
  console.log(output);//a
  /*為什么基本數據類型可以使用字符串方法呢
  因為包裝對象:當執行 var output=up.charAt(5);這個步驟的時候
  后台會這樣 var up=new String("he is a super man");找到對應的包裝對象,包裝成一個和up值相等的對象返    回
  var output=up.charAt(5);調用方法返回給output
  up=null; 然后銷毀

同理,數字、布爾值在讀取屬性的時候也可以通過自己的構造函數來創建自己的一個臨時對象,並像對象一樣(就是一個對象)引用各自的屬性,所以,字符串、數字、布爾值都可以看成是對象,注意,這里是看成對象,他們並不是真正的對象,也就是嚴格來說,它們並不是對象,因為對象是可變的,可以修改屬性,而原始值是不可變的是不可修改的(看下面)

 

var b="abcdefg";
console.log(b.toUpperCase());
console.log(b);

它只是返回一個變成大寫的副本沒有改變原始的變量

而且不能在原始數據類型上添加屬性和方法。

 

因為創建的只是一個臨時對象,寫的屬性和方法只存在於臨時對象上,引用完后隨即銷毀

ps:還沒有訪問就已經銷毀了

*/

接着說說null  他是一個關鍵字,表示為“空" 並且 console.log(typeof null); //object

由此可見它是一個對象,但是它只是指向一個空對象的引用。

然后是undefined,undefined是另一個表示“空值”特殊值,它表示未定義,當我們對變量只聲明沒有初始化時(賦值),輸出為undefined,當我們引用一個不存在的屬性時,輸出也為undefined,但是請注意它並不是一個關鍵字,它是一個變量,而且是一個全局變量,我們可以驗證一下:

console.log( undefined in window);//true

而且console.log(typeof undefined);//undefined

這嚴格表明undefined是這個類型的唯一成員

除了undefined js里面其他一切的都可以看作是對象  記住是看作 !!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM