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");

 

猜你喜欢

转载自www.cnblogs.com/konglxblog/p/10011711.html