标准库(标准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);