请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于var shop={};的问题

问题:var shop={};可以shop.属性。假设我在这定义var product={},却不可以product.什么,这是为什么?换句话说,它怎么知道shop这个变量是一个实体?

// 提交按钮的事件响应,分别对店铺注册和编辑操作做不同响应
$('#submit').click(function() {
	// 创建shop对象,模拟shop一个实体


	var shop = {};

	if (isEdit) {
		// 若属于编辑,则给shopId赋值
		shop.shopId = shopId;
	}
	// 获取表单里的数据并填充进对应的店铺属性中
	shop.shopName = $('#shop-name').val();
	shop.shopAddr = $('#shop-addr').val();
	shop.phone = $('#shop-phone').val();
	shop.shopDesc = $('#shop-desc').val();
	// 选择选定好的店铺类别
	shop.shopCategory = {
		shopCategoryId : $('#shop-category').find('option').not(function() {
			return !this.selected;
		}).data('id')
	};
	// 选择选定好的区域信息
	shop.area = {
		areaId : $('#area').find('option').not(function() {
			return !this.selected;
		}).data('id')
	};
	// 获取上传的图片文件流
	var shopImg = $('#shop-img')[0].files[0];
	// 生成表单对象,用于接收参数并传递给后台
	var formData = new FormData();
	// 添加图片流进表单对象里
	formData.append('shopImg', shopImg);
	// 将shop json对象转成字符流保存至表单对象key为shopStr的的键值对里
	formData.append('shopStr', JSON.stringify(shop));
	// 获取表单里输入的验证码
	var verifyCodeActual = $('#j_captcha').val();
	if (!verifyCodeActual) {
		$.toast('请输入验证码!');
		return;
	}
	formData.append('verifyCodeActual', verifyCodeActual);
	// 将数据提交至后台处理相关操作
	$.ajax({
		url : (isEdit ? editShopUrl : registerShopUrl),
		type : 'POST',
		data : formData,
		contentType : false,
		processData : false,
		cache : false,
		success : function(data) {
			if (data.success) {
				$.toast('提交成功!');
				if (!isEdit) {
					// 若为注册操作,成功后返回店铺列表页
					window.location.href = "/o2o/shopadmin/shoplist";
				}
			} else {
				$.toast('提交失败!' + data.errMsg);
			}
			// 点击验证码图片的时候,注册码会改变
			$('#captcha_img').click();
		}
	});
});

})

正在回答 回答被采纳积分+3

1回答

提问者 一只追梦的兔子 2019-05-08 21:47:14

还是毛爷爷说的对:自己动手,丰衣足食。自己回答一下,var shop 这个和我一开始理解的一样,就是定义了一个变量,至于为什么能shop.属性,原因在于下面的代码定义了shop 这个变量的属性,idea这个编辑器又比较智能,你只要在写shop.什么,它能帮你自动寻找相关的属性。你把下面的代码给注释掉,就没有.属性了

1 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    js里面var shop = {}; var product= {}; 类型都一样,也都能定义属性的,但是ide对于javascript就不那么友好,idea算是做得不错的了
    回复 有任何疑惑可以回复我~ 2019-05-08 23:52:55
  • 翔仔 #2
    js里面var shop = {}; var product= {}; 类型都一样,也都能定义属性的,但是ide对于javascript就不那么友好,idea算是做得不错的了
    回复 有任何疑惑可以回复我~ 2019-05-08 23:53:14
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信