toString() 和 Object.prototype.toString.call()

toString() 方法和 Object.prototype.toString.call() 方法對比

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

 

Object.prototype.toString.call()做用能夠判斷數據類型

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

相關文章
相關標籤/搜索