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