JS中对象的类型转换

2022/3/25 23:27:08

本文主要是介绍JS中对象的类型转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

对象类型转换时,会调用内置的[@@toPrimitive]函数。

1⃣️如果期望或得一个string或default,则[@@toPrimitive]会先调用toString。如果toString属性不存在,则会嗲用valueOf。如果也不存在则会抛出一个TypeError

2⃣️如果期望获得number类型,则[@@toPrimitive]会首先尝试valueOf,若失败再尝试toString

//自定义valueOf和toString方法
let a = {
    name:'小王',
    age:18,
    valueOf(){
        return 18
    },
    toString(){
        return `name is ${this.name}, age is ${this.age}`
    }
}

也可以自己重写[Symbol.toPromitive]方法

//未重写版本
let a = {
    name:'小王',
    age:18,
}
console.log(a+'') //[object Object]
//重写toPrimitive版本
let a = {
    name:'小王',
    age:18,
    [Symbol.toPrimitive](){
        return `name is ${this.name}, age is ${this.age}`
    }
}
console.log(a+'') //name is 小王, age is 18


这篇关于JS中对象的类型转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程