2013年7月2日

摘要: for(var i = 0;i<10;i++){}// 在js中没有块作用域。 不管是使用循环还是判断这个变量会一直存在。alert(i) //10//解决:匿名函数(function(){for(var i = 0;i<10;i++){}})();alert(i) //undefined; 阅读全文
posted @ 2013-07-02 15:12 菜鸟半只 阅读(151) 评论(0) 推荐(0)
摘要: var name = "window";var person = {name:"Amos",age:22,say:function(){return function(){alert(this.name);}}}// 当完成person.say()。之后,这个函数函数就调用结束了,在这个函数调用结束之前//this是指向Person的,但是在调用匿名函数的时候 this 就指向window了.person.say()(); //window解决方法:var person = {name:"Amos",age:22,say:functi 阅读全文
posted @ 2013-07-02 14:53 菜鸟半只 阅读(207) 评论(0) 推荐(0)
摘要: function fn1(){var fns = new Array();// 这里的i的作用域是在fn1里面的for(var i = 0;i");}输出如下: 阅读全文
posted @ 2013-07-02 14:43 菜鸟半只 阅读(212) 评论(0) 推荐(0)
摘要: 在js中进行函数的调用的时候,会为每个函数添加一个SCPOE属性,通过这个属性laugh指向一块内存。这快内存中包含所有上下文使用的变量当在某个函数中调用新的函数的时候,新函数会有一个作用域来指向原有的SCOPE和新增的SCOPE。这样就形成了一个作用域链。function compareObject(prop){return function(obj1,obj2){if(obj1[prop]>obj2[prop]){return 1}else if(obj1[prop]<ob22[prop]){return -1}else{return 0;}}}var o1 = {name:& 阅读全文
posted @ 2013-07-02 14:17 菜鸟半只 阅读(145) 评论(0) 推荐(0)
摘要: fn1(); // 不会报错,对于通过下面这样的方式定义的函数。永远都是最先初始化function fn1(){}fn2();//会报错。这样定义方式是先在内存中创建了一块区域。之后通过一个fn2的变量指向这快区域。最快区域函数最开始是目名称的。这样的函数叫做匿名函数.var fn2 = function(){} 阅读全文
posted @ 2013-07-02 13:31 菜鸟半只 阅读(192) 评论(0) 推荐(0)
摘要: function parent(){this.color = ["red","green"];}function child(){parent.call(this);}var c1 = new child();c1.color.push("white");alert(c1.color); // red green whitevar c2 = new child();alert(c2.color); // red green说明:这样每次调用 new child 就等于执行了一次对象属性的设定。这个时候,每个对象的空间就都有parent 阅读全文
posted @ 2013-07-02 11:37 菜鸟半只 阅读(168) 评论(0) 推荐(0)
摘要: function Parent(){this.pv = "parent";}Parent.prototype.showParentValue = function(){alert(this.pv);}function Child(){this.cv = "child";}Child.prototype = new Parent(); //1:让child的原型链指向parent对象。也就等于完成了一次继承 2:不会在指向之前的对象原型,而是会指向 new 之后的对象 _prop_对象空间 。这个_prop_又指向parent的对象原型Child.prot 阅读全文
posted @ 2013-07-02 11:19 菜鸟半只 阅读(165) 评论(0) 推荐(0)
摘要: 说明:把属性在构造函数中定义,把方法在原型中定义function Person(name,age,friends){this.name=name;this.age=age;this.friends=friends;}Person.prototype = {constructor:Person,say:function(){alert(this.name+"\t"+this.friends);}}var p1 = new Person("Amos",22,["ecplise","tomcat"]);p1.friend 阅读全文
posted @ 2013-07-02 10:17 菜鸟半只 阅读(182) 评论(0) 推荐(0)
摘要: 1:弊端 无法通过构造函数来设置属性值 当属性中有引用变量类型时,可能存在变量值重复function Person(){}Person.prototype = {constructor:Person,name:"Amos",age=22,friends:["eclipse","tomcat"],say:function(){alert(this.name+"\t"+this.friends);}}var p1 = new Person();p1.name="aa";p1.say(); // aa 阅读全文
posted @ 2013-07-02 09:51 菜鸟半只 阅读(176) 评论(0) 推荐(0)

导航