87,997
社区成员




<script language="javascript">
function sendMessage(msg, obj) {
if ( arguments.length ==2)
obj.handleMsg (msg);
else
alert ( msg );
}
sendMessage ( "How are you?", {
handleMsg: function (msg) {
alert ( "This is a custom message: " + msg );
}
});
</script>
<script language="javascript">
//javascript中也有对象的概念,并且对象可以有属性,和函数;
//它们都通过一个引用来供外界调用,这里obj是一个对象,obj.handleMSg代表引用对象中的handleMsg函数。
//arguments是一个javascript函数自带的参数,用来记录传给当前函数的参数数量,sendMessage函数可以接收
//两个参数,这里首先判断是否传递了两个参数,如果两个参数就调用参数obj的handleMsg函数.
function sendMessage(msg, obj) {
if ( arguments.length ==2){//如果参数的长度为2
obj.handleMsg (msg);//调用obj参数里的handleMsg方法, 此方法的参数是msg
}else { //如果参数的长度不为2
alert ( msg );//alert(msg参数) 如msg是"How are you?"
}
}
//{}在javascript中就好像java的new来构造一个对象,在sendMessage调用中通过构造一个新对象{name:value}
//name就是函数的引用,这里为handleMsg;value可以是一个数值货对象,function(msg)被指定为新对象的
//一个成员函数,其实现为弹出加工后的msg消息.这里会显示This is a custom message How are you?
sendMessage ( "How are you?",
{handleMsg: function (msg) {alert ( "This is a custom message: " + msg );}
});
//而且javascript函数是弱类型的,可以接收少于声明的参数个数,如果这样调用,则直接弹出"How are you?"
sendMessage("How ar you?");
</script>
希望清楚一点了..
function sendMessage(msg, obj) {//定义个函数
if ( arguments.length ==2)//如果传递的参数个数等于2
obj.handleMsg (msg);
else
alert ( msg );
}
sendMessage( "How are you?",
//How are you?既是msg值,因为传递了两个参数,所以执行obj.handleMsg (msg);也就是下面的函数:
{
handleMsg: function (msg)
{
alert ( "This is a custom message: " + msg );
}
}
);