JavaScript函数中的参数类型
2016-06-05 10:03
344 查看
JavaScript是一种弱类型语言,由于声明形参无须定义数据类型,所以导致调用这些函数时可能出现问题。 比如:
function changeAge(p){ p.setAge(20); }
由于,javascript不需要声明参数类型,所以调用函数时,传入的参数p完全可以是整型变量或者是布尔型变量,这些类型的数据都没有setAge()方法,但程序强制调用该方法,肯定会导致程序出现错误,非正常中止。 为了解决弱类型语言所存在的问题,弱类型语言方面的专家提出了“鸭子类型”的概念。 “鸭子类型”的理论认为:如果弱类型语言的函数需要接受参数,则应先判断参数类型,并判断参数是否包含了需要访问的属性、方法。只有当这些条件都满足时,程序才开始真正处理调用参数的属性、方法。
<script type="text/javascript"> //定义函数changeAge,函数需要一个参数 function changeAge(person){ //首先要求person必须是对象,而且person的age属性为number if(typeof person=='object'&& typeof person.age=='number'){ //执行函数所需的逻辑操作 document.write("函数执行前person的age值为:"+person.age+"<br/>"); person.age=10; document.write("函数执行后person的age值为:"+person.age+"<br/>"); }else{ document.writeln("参数类型不符合"+typeof person+"<br/>"); } } //分别采用不同的方式调用函数 chageAge(); changeAge("xxx'); changeAge(true); //采用JSON语法创建第一个对象 p={abc:34}; changeAge(p); //采用JSON语法创建第二个对象 person={age:20}; chageAge(person); </script>
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享