我的漫漫程序之旅

专注于JavaWeb开发
随笔 - 39, 文章 - 310, 评论 - 411, 引用 - 0
数据加载中……

JavaScript函数重载和类型检查

<!--
函数重载和类型检查
重载是其它面向对象语言的一个普通特性,像Java
(JavaScript是不能直接写重载的,但我们可以通过另
一种方式来实现).
要想实现重载必须知道:所传参数的个数,类型都是什么.
我们就从这入手.
-->
<html>
    
<head>
        
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        
<title>Untitled Document</title>
        
<script>
            
//arguments 是每个javascript函数内置的一个对象
            //返回传入参数的数组
            function getArgs(){
                
var arr = new Array();
                
for (var i = 0; i < arguments.length; i++{
                    arr.push(arguments[i]);
                }

                
return arr;
            }

            
            
var arr = getArgs("a""b""c");
            
//输出所有参数
            for (var i in arr) {
                alert(arr[i]);
            }

            
//发送短消息的函数
            function sendMessage(msg, obj){
                
//参数为2
                if (arguments.length == 2{
                    
//对象的属性函数
                    obj.handleMsg(msg);
                }

                
//一个参数时
                else {
                    alert(msg);
                }

            }

            
            
//一个参数时的调用 
            sendMessage("Hello,World");
            
            sendMessage(
"How are you ?"{
                handleMsg: 
function(msg){
                    alert(
"This is a custom message:" + msg);
                }

            }
);
            
/*
             * 类型检查,关键字typeof
             
*/

            
function check(str){
                
if (typeof str == "undefined"{
                    alert(
"an error occurred!")
                }

                
else {
                    alert(str);
                }

                
            }

            
            
var a = 1;
            
//用构造函数属性确认对象的类型
            if (a.constructor == Number) {
                alert(
true);
            }

            
//用typeof关键字
            if (typeof a == "number"{
                alert(
true);
            }

            
var s = []; //或var s = new Array();
            if(s.constructor == Array)
            
{
                alert(
"array");
            }

            
        
</script>
    
</head>
    
<body>
    
</body>
</html>

typeof 和constructor返回类型一览表:
Variable typeof      Variable   Variable.constructor
{ an: “object” }   object    Object
[ “an”, “array]   object     Array
function(){}            function   Function
“a string”            string        String
55                          number    Number
true                         boolean    Boolean
new User()              object        User

posted on 2008-07-09 14:33 々上善若水々 阅读(415) 评论(0)  编辑  收藏 所属分类: JavaScript


只有注册用户登录后才能发表评论。


网站导航: