js對象和數組的定義


以下是三種創建空對象的方法:

var emptyObj1 = {};
var emptyObj2 = new Object();
var emptyObj2 = Object.create(Object.prototype);

他們對Javascript來說是一樣的,新創建的三個對象會繼承object所有的屬性和方法,所以emptyObj1.toString等於Object.prototype.toString。但是要注意,{}.toString是會報錯的!

類似的還有空數組問題:

var emptyArr1 = [];
var emptyArr2 = new Array();

以上兩行沒有差別

var arr1 = ['foo','bar'];
var arr2 = new Array('foo','bar');

以上兩行也沒有差別

var arr1 = [3];  // arr1.length == 1, arr1[0] == 3
var arr2 = new Array(3); // arr2.length == 3, arr2[0] == undefined

以上兩行是不同

 
var arr1 = [];
arr1[0] = 'first element';
console.log(arr1); // ["first element"]

var arr2 = new Array();
arr2[0] = 'first element';
console.log(arr2); // ["first element"]

var arr3 = Object.create(Array.prototype);
arr3[0] = 'first element'
console.log(arr3); // Array {0: "first element"}
 

以上代碼可以看出用Object.create創建的數組返回的是Object, 如果把arr3[0] = 'first element'換成arr3.push('first element'),那輸出的結果就和上面兩個一樣了。

 

 

 

定義數組

數組對象用來在單獨的變量名中存儲一系列的值。

我們使用關鍵詞 new 來創建數組對象。下面的代碼定義了一個名為 myArray 的數組對象:

var myArray=new Array()

有兩種向數組賦值的方法(你可以添加任意多的值,就像你可以定義你需要的任意多的變量一樣)。

1:

var mycars=new Array()
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"

也可以使用一個整數自變量來控制數組的容量:

var mycars=new Array(3)
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"

2:

var mycars=new Array("Saab","Volvo","BMW")

注意:如果你需要在數組內指定數值或者邏輯值,那么變量類型應該是數值變量或者布爾變量,而不是字符變量。

創建 JavaScript 對象

通過 JavaScript,您能夠定義並創建自己的對象。

創建新對象有兩種不同的方法:

  1. 定義並創建對象的實例
  2. 使用函數來定義對象,然后創建新的對象實例

創建直接的對象 

這個例子創建了對象的一個新實例,並向其添加了四個屬性:

   實例

person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

替代語法(使用對象 literals):

實例

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};

使用對象構造器

本例使用函數來構造對象:

實例

function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}

創建 JavaScript 對象實例

一旦您有了對象構造器,就可以創建新的對象實例,就像這樣:

var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");

 


免責聲明!

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



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