为何通过方法定义新方法的方式无法生效?
自定义String方法splitb无法正常运行的原因分析
你的问题核心在于自定义方法没有返回值:
- 你写的
splitb方法里,仅调用了this.split('b')执行分割操作,但没有用return把操作结果返回出去。 - JavaScript中,函数如果没有显式写
return语句,默认会返回undefined,所以console.log('aba'.splitb())会输出undefined。 - 原生
split方法内部自带返回逻辑,会把分割后的数组返回,因此能正常输出预期的["a", "a"]。
修复后的代码如下:
String.prototype.splitb = function () { return this.split('b') // 添加return返回分割结果 } console.log('aba'.splitb()) // 输出 ["a", "a"] console.log('aba'.split('b')) // 输出 ["a", "a"]
内容的提问来源于stack exchange,提问作者Ooker
相关产品推荐
相关产品推荐

