关于JavaScript中函数嵌套后使用内置方法失效问题

比如两个方法
function a(){
var str1="abc";
b(str1);
}
function b(str1){
var str2 =str1.spilt("a");
}
为何b方法中的spilt会报str1.spilt is not a function 呢?
这里面有什么使用上的错误吗?

2个回答

split,不是
spilt

还有你的b(str1)后面的分号是中文状态的了

首先问题是:进行如下修改:

split 应该是 spilt

进行修改后,这段代码要看调用方式,
如果调用方式是 a() 那么这题应该不会出现上诉问题;
如果调用方式是 b(null) 这样的,就会出现上诉的异常。
建议楼主在写代码时应该对类型安全做一些判断好,增强代码的鲁棒性;
例如:


 function b(param) {
     var str; 
     if (typeof param === 'string') {
            str = param.spilt(param);
     }
     return str;
 }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐