1 var arr=[1,2]; 2 3 //直接对一个数组调用toString() 4 arr.toString();// "1,2" 5 6 //经过call指定arr数组为Object.prototype对象中的toString方法的上下文 7 Object.prototype.toString.call(arr); //"[object Array]"
toString()方法在数组中重写了javascript
vue源码中是这么使用的vue
var _toString = Object.prototype.toString;
function toRawType (value) { return _toString.call(value).slice(8, -1) }
1. 知识点1 Object.prototype.toStringjava
原型方法数组
2. call 方法this
做用是修改this的指向spa
var person = {
firstName:'123',
lastName:'456', fullName: function() { return this.firstName + " " + this.lastName; } } var person1 = { firstName:"Bill", lastName: "Gates", } var person2 = { firstName:"Steve", lastName: "Jobs", }
person.fullName();//打印 123456
person.fullName.call(person1); // 打印 "Bill Gates" 经过call方法,把fullName方法里的 this指向了person2这个对象,也能够变相的理解为person1继承了fullName方法,实际person1是没有添加fullName方法的
3. slice 方法prototype
slice() 方法可从已有的数组中返回选定的元素。code
slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。对象
注意: slice() 方法不会改变原始数组。返回一个新的数组,包含从 start 到 end (不包括该元素)blog