03 2012 档案
摘要://检测插件(在IE中无效) function hasPlugin(name) { name = name.toLowerCase(); for (var i = 0; i < navigator.plugins.length; i++) { if (navigator.plugins[i].name.toLowerCase().indexOf(name) > -1) { return true; } ret...
阅读全文
摘要:如果是浏览器内置的屏蔽程序阻止的弹出窗口,那么window.open()很可能返回null。如果是浏览器扩展或其他程序阻止的弹出窗口,那么window.open()通常会抛出一个错误。因此,要想准确检测出弹出窗口是否被屏蔽,必须在检测返回值的同事,将对window.open()的调用封装在一个try-catch块中 var blocked = false; try { var windownew = window.open("http://www.baidu.com", "_blank"); //alert(windown...
阅读全文
摘要:静态私有变量 (function() { var name = ""; //私有变量,只在私有作用域中可以访问到 Person = function(value) { name = value; alert("私有作用域中的全局变量中的this:" + this); }; //Person为全局变量的构造函数 ,这时this为局部变量,所以name=value不能写成this.name=value; Person.prototype.getName = function() { return name;...
阅读全文
摘要:(function(){//这里就是块级作用域})();块级作用域 //无论在什么地方,只要临时需要一些变量,就可以使用块级作用域 function outputNumbers(count) { ( function() { for (var i = 0; i < count; i++) {alert(i);} } )(); alert(i); //error } outputNumbers(3);这种技术经常在全局作用域中被用在函数外部,从而限制向全...
阅读全文
摘要:很多人认为组合继承是js最常用的继承模式;不过它也有自己的不足。组合继承最大的问题就是无论什么情况下,都会调用两次超类型构造函数:一次是在创建子类型原型的时候另一次是在子类型构造函数内部。这样,子类型最终会包含超类型对象的全部实例属性,但我们不得不在调用子类型构造函数时重写这些属性。function SuperType(name){this.name=name;this.color=["red","blue","green"];}SuperType.prototype.sayName=function(){alert(this.nam
阅读全文
posted @ 2012-03-22 17:25
cqclassic
摘要:1.组合使用构造函数模式和原型模式。这样每个实例都会有自己的一份实例属性的副本,但同时又共享着对方法的引用,最大限度地节省了内存。//构造函数模式用于定义实例属性function Person(name,age,job){this.name=name;this.age=age;this.job=job;this.friend=["xj","nn"];}//原型模式用于定义方法和共享属性Person.protoype={constructor:Person,sayName:function(){alert(this.name);}}var person1=
阅读全文
posted @ 2012-03-22 16:24
cqclassic

浙公网安备 33010602011771号