JavaScript 继承和数组

前言

因为篇幅比较短,所以将JavaScript中的继承和数组进行统一写。

继承

当一个函数对象被创建的时候,Function构造器产生的函数对象会运行类似这样的代码:

this.prototype = {constructor:this};

新函数对象被赋予一个prototype属性,它的值是一个包含constructor属性且属性值为该新函数的对象。这个prototype对象是存放继承特征的地方。类似于构造函数,因为这门语言并没有提供一种方法去确定哪个函数是打算用来做构造器的,所以每个函数都会得到一个prototype对象。

如果你在调用构造器函数时忘记了在前面加上new前缀,那么this将不会被绑定到一个新对象上。但是,this将会绑定到全局对象上,所以你将不但没有扩充对象,反而破坏了全局变量环境。

数组

长度

如果你用大于或者等于当前length的数字作为下标来存储一个元素,那么length值将会被增大以容纳新元素,不会发生数组越界错误。

枚举

for in 无法保证属性的顺序,而大多数遍历数组的场合都期望按照阿拉伯数字顺序来产生元素。

判断变量属性

因为这门语言对于数组和对象的区别是混乱的。typeof运算符报告数组的类型是'object'。

所以可以利用下面的方式来判断是否是数组:

//判断是否数组,
var is_array = function (value) {
	return Object.prototype.toString.apply(value) === '[Object Array]';
	
}

初始化

JavaScript没有多维数组,为了创建数组的数组,必须自己去创建一个第二维的数组。

原文地址:https://www.cnblogs.com/George1994/p/6412155.html