<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>小例子</title>
<script src="jquery.js" type="text/javascript"></script>
<script language="javascript">
$(document).ready(function () {
//初始化
var regPage = {
init: function () {
$("#submit").click(submit);
},
submit: function () {
alert("2");
}
}; var submit = function () {
alert("1");
}; //这里什么意思
window.regPage = window.regPage || {}; //这里什么意思
$.extend(window.regPage, regPage);
}); $(function () {
window.regPage.init(); window.regPage.submit();
});
</script>
</head>
<body>
<input id="submit" type="button" value="button" />
</body>
</html>谢谢各位帮个小忙。再次谢过了
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>小例子</title>
<script src="jquery.js" type="text/javascript"></script>
<script language="javascript">
$(document).ready(function () {
//初始化
var regPage = {
init: function () {
$("#submit").click(submit);
},
submit: function () {
alert("2");
}
}; var submit = function () {
alert("1");
}; //这里什么意思
window.regPage = window.regPage || {}; //这里什么意思
$.extend(window.regPage, regPage);
}); $(function () {
window.regPage.init(); window.regPage.submit();
});
</script>
</head>
<body>
<input id="submit" type="button" value="button" />
</body>
</html>谢谢各位帮个小忙。再次谢过了
window.regPage = window.regPage || {};//这里window.regPage这个就是regPage这个全局变量了,
后面的||表达式表示,如果前面 的表达式也就是window.regPage不为空,就直接返回,如果为空时取||后面的{},也就是返回一个空对象
//这里什么意思
$.extend(window.regPage, regPage);
//这里就复制对象 了,将局域变量regPage的所有属性和方法添加到全局变量
1、window.regPage = window.regPage || {};
定义一个全局对象“regPage”,如果代码上文中已经存在同名对象,则把同名对象赋给该对象,否则采用直接值的方式全新定义一个空对象。
代码相当于(在全局环境中):
if (regPage) {
var regPage = regPage;
} else {
var regPage = {}
}2、$.extend(window.regPage, regPage);
如果上文中存在同名对象“regPage”,那么把该对象所有属性复制到新对象“regPage”,否则复制自身属性。BTW:不清楚方法“$.extend”的内部机制(没看代码),个人不明白LZ写出的代码中这种COPY的目的,是否有这必要。
在那函数局域,“regPage”在什么地方呢?
window.regPage 为window添加一个属性 相当于一个全局变量window.regPage = window.regPage || {}; //当window.regpage不存在时,regPage属性赋值为一个空对象逻辑运算符|| 的用法
有两种用法 左右两边为boolean 的时候 有一个为 true 则返回ture
如果一个运算数是对象 另一个是boolean 则返回对象
如果两个都是对象 则返第一个对象
&&也是一样,,如果两个都是对象,,返回第二个对象
JavaScript可以动态申明变量
window.regPage = window.regPage || {}; 这样就动态申明并定义了第二个
var empty = {};
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = jQuery.extend(empty, defaults, options);结果:
settings == { validate: true, limit: 5, name: "bar" }
empty == { validate: true, limit: 5, name: "bar" }