029. js 标准库 Object , Array - cwy007/tips-and-skills GitHub Wiki
1.“构造函数的方法”和“实例对象的方法”。
// 构造函数的方法 类似于 ruby 中的类class方法
Object.print = function(o){ console.log(o) };
var o = new Object();
Object.print(o) // Object
// 实例对象的方法 类似于 ruby 中的实例instance / object方法
Object.prototype.print = function(){ console.log(this)};
var o = new Object();
o.print()
link:http://javascript.ruanyifeng.com/stdlib/object.html
2. 方法的回调函数
[1, 2, 3].map(function(elem, index, arr) {
return elem * index;
});
// [0, 2, 6]
上面代码中,
map
方法的回调函数
的三个参数之中,elem
为当前成员的值,index
为当前成员的位置,arr
为原数组([1, 2, 3])
3. 回调函数中 this 关键字所指的对象
var arr = ['a', 'b', 'c'];
[1, 2].map(function(e){
return this[e];
}, arr)
// ['b', 'c']
上面代码通过map方法的第二个参数,将回调函数内部的this对象,指向arr数组。
4.构造函数
// 构造函数
var Obj = function () {
this.MAX = 3;
};
// 过滤方法 | 参数方法
var myFilter = function (item) {
if (item > this.MAX) {
return true;
}
};
var arr = [2, 8, 3, 4, 1, 3, 2, 9];
arr.filter(myFilter, new Obj())
// [8, 4, 9]
上面代码中,测试函数myFilter内部有this对象,它可以被filter方法的第二个参数绑定。上例中,myFilter的this绑定了Obj对象的实例,返回大于3的成员。