Skip to content

标准库(标准API)

  • 库:liberary
  • API:应用程序编程接口,Application Programing Interface
  • 标准:ECMAScript标准

Object

静态成员

  • keys(某个对象),得到某个对象的所有属性名数组
  • values(某个对象),得到某个对象的所有属性值数组
  • entries(某个对象),得到某个对象的所有属性名和属性值的数组

实例成员

实例成员可以被重写

js
function MyNumber(n) {
	// ....
	this.toString = function() {
		return "" + n;
	}
}

var obj = new MyNumber(123);
console.log(MyNumber.toString());

所有对象,都拥有Object的所有实例成员

  • toString方法:得到某个对象的字符串格式

默认情况下,该方法返回"[object Object]";

  • valueOf方法:得到某个对象的值

默认情况下,返回该对象本身

在JS中,当自动的进行类型转换时,如果要对一个对象进行转换,实际上是先调用对象的valueOf方法,然后调用返回结果的toString方法,将得到的结果进行进一步转换。

js
	var obj = {
		x: 13,
		y: 34534,
		valueOf() {
			return 123;
		}
	}

	console.log(obj + 1);
	// 如果调用了valueOf已经得到了原始类型,则不再调用toString
	// console.log(obj.valueOf().toString() + 1);

Function

所有函数都具有Function中的实例成员

语法:arguments:在函数中使用,获取该函数调用时,传递的所有参数

arguments是一个类数组(也称为伪数组:没有通过Array构造函数创建的类似于数组结构的对象),伪数组会缺少大量的数组实例方法

arguments数组中的值,会与对应的形参映射

js
	var test = function abc(a, b, c, d) {
		arguments[0] = "abc";
		b = 123;

		console.log(a, b);
		console.log(arguments);
	}

实例成员

  • length属性,得到函数形参数量
  • apply方法:调用函数,同时指定函数中的this指向,参数以数组传递
  • call方法:调用函数,同时指定函数中的this指向,参数以列表传递
  • bind方法:得到一个新函数,该函数中的this始终指向指定的值。(需要手动调用)

通常,可以利用apply、call方法,将某个伪数组转换伪真数组。

js
	function test() {
		console.log(arguments);
		//将arguments转换为真数组
		var newArr = [].slice.call(arguments)
		console.log(newArr);
	}

	test(23, 5, 6, 2, 233, 5, 6, 7);

MIT License