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

相关文章
相关标签/搜索