全局变量和局部变量
1:块级外面的不管有误var显示声明都为全局变量
2:块级内部var显示声明的为局部变量,可以再{}块内任意地方声明,没有未全局变量
3:window都是全局变量
4:var a = {
name:'ljq'
}对象中全部是公有的,外部可以修改
5:当全局变量和局部变量同名时候,全局不能作用在局部上,
对象
javascript中函数就是一个对象的构造器
1:字面式 (literal notation) 对象声明
/** * 字面式 (literal notation) 对象声明 * 所有的都是公用变量 * @param $ */ var coder = { name:'ljq', age:25, work:function(){ console.log('coder'); } }; coder.name='风一样的人生'; console.log(coder.name); coder.height = 172; coder.work();
2:使用原型对象
/** * 使用构造器 (constructor) 创建对象 * @param $ */ function boss(){ } boss.prototype={ name:'boss', age:'56' }; var b = new boss(); boss.prototype.money=2500; boss.prototype.getMoney=function(){ console.log('25000'); }; console.log(b.name);
3:私有信息对象
/** * 私有信息隐藏方法写法 * @param $ */ function User( pwd ) { // 定义私有属性 var password = pwd; // 定义私有方法 function getPassword() { // 返回了闭包中的 password return password; } // 特权函数声明,用于该对象其他公有方法能通过该特权方法访问到私有成员 this.passwordService = function() { return getPassword(); }; } // 公有成员声明 User.prototype.checkPassword = function( pwd ) { return this.passwordService() === pwd; }; var u = new User( "123456" ); console.log( u.checkPassword( "123456" ) ); console.log( u.password ); console.log( typeof u.gePassword === "undefined" );
5:自执行函数
/** * 闭包 */ (function($){ $.checkPassword('123456'); }(u));