为了账号安全,请及时绑定邮箱和手机立即绑定

方法中的参数调换位置之后objInfo.title为什么是undifined?

方法中的参数调换位置之后objInfo.title为什么是undifined?

<!DOCTYPE html>
<html>
    <head>
        <title>使用$.extend()扩展Object对象</title>
        <link href="style.css" rel="stylesheet" type="text/css" />
        <script src="http://www.imooc.com/data/jquery-1.8.2.min.js" type="text/javascript"></script>
    </head>
    
    <body>
        <div id="divtest">
            <div class="title">
                <span class="fl">合并原有对象</span> 
            </div>
            <div class="content">
                <div class="tip"></div>
            </div>
        </div>
        
        <script type="text/javascript">
            $(function () {
                var objInfo = { name: "1" };
                var objMess = { name: "白富美,", title: "欢迎与我联系!" }; 
                var objNewInfo =$.extend(objMess,objInfo);
                var strTmp = "<b>对象 白富美 合并后</b>:<br/><br/>";
                strTmp += objNewInfo.name + objInfo.title;
                //显示在页面中
                $(".tip").show().append(strTmp);
            });
        </script>
    </body>
</html>


正在回答

5 回答

你把方法里的变量名写反了,正确顺序$.extend(objInfo,objMess);。你的顺序$.extend(objMess,objInfo);,把变量名反回来就行了。

0 回复 有任何疑惑可以回复我~

在扩展对象时,两个对象将进行合并,当存在相同属性名时,后者将覆盖前者,而objInfo中没有title的属性

var objNewInfo =$.extend(objMess,objInfo);    //是后者objInfo把前者相同属性name覆盖了

strTmp += objNewInfo.name + objInfo.title;        //objInfo中无该属性,所以为undefined(在js中所有未定义的属性输出显示时是undefined)

1 回复 有任何疑惑可以回复我~

这个合并不算是合并,相当于覆盖,后面的obj对象值为空,覆盖了前面的obj对象,当然undefined

1 回复 有任何疑惑可以回复我~

不知道是什么机制,坐等大神解答

0 回复 有任何疑惑可以回复我~

不会啊。我换了之后是(欢迎与我联系!白富美,)

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

方法中的参数调换位置之后objInfo.title为什么是undifined?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信