09 2013 档案

摘要:CSRF:一种跨站请求伪造,是一种对网站的恶意利用;详细信息参考:http://baike.baidu.com/view/1609487.htmXSS:恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。详细信息参考:http://baike.baidu.com/view/50325.htm 阅读全文
posted @ 2013-09-27 13:25 cbhello 阅读(162) 评论(0) 推荐(0) 编辑
摘要:匿名函数就是没有名字的函数;闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的常见的方式,就是在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量;使用闭包有一个优点,也是它的缺点;就是可以把局部变量驻留在内存中,可以避免使用全局变量;PS:全局变量污染导致应用程序不可预测性,每个模块都可调用必将引来灾难,所有推荐使用私有的,封装的局部变量;避免使用全局变量;参考:https://developer.mozilla.org/zh-CN/docs/JavaScript/Guide/Closures; http://www.ruanyifeng.com/blog/2009.. 阅读全文
posted @ 2013-09-24 20:31 cbhello 阅读(230) 评论(0) 推荐(0) 编辑
摘要:寄生构造函数,其实就是工厂模式+构造函数模式。这种模式比较通用,但不能确定对象关系//寄生构造函数 function Box(name,age){ var obj = new Object(); obj.name = name; obj.age = age; obj.run = function(){ return this.name + this.age + 'yunxingzhong...' }; return obj; } 阅读全文
posted @ 2013-09-24 09:48 cbhello 阅读(263) 评论(0) 推荐(0) 编辑
摘要:原型模式中,不管你是否调用了原型中的共享方法,他都会初始化原型中的方法,并且在声明一个对象时,构造函数+原型部分让人感觉又很怪异,最好就是把构造函数和原型封装到一起,为了解决这个问题,我们可以使用动态原型模式。//可以将原型模式封装到构造函数里 function Box(name,age){ this.name = name; this.age = age; this.family = ['one','two','three']; if(typeof this.tun!= 'function'){ //判断函数是否存在 ... 阅读全文
posted @ 2013-09-24 09:40 cbhello 阅读(289) 评论(0) 推荐(0) 编辑
摘要:1, 为了让属性和方法更好的体现封装的效果,并且减少不必要的输入,原型的创建可以是用字面量的方式;//原型字面量 function Box(){} Box.prototype = { //使用原型自变量的方式创建原型对象 name:'Lee', age:100, run:function(){ return this.name + this.age + '原型中', } };2,使用构造函数名访问prototypefunction Box()... 阅读全文
posted @ 2013-09-22 18:56 cbhello 阅读(293) 评论(0) 推荐(1) 编辑
摘要:在Javascript中,我们创建的每个函数都有一个prototype属性,这个属性是一个对象;它的用途是包含可以有特定类型的所有实例共享的属性和方法。可以这么来理解:prototype通过调用构造函数而创建的那个对象的原型对象。使用原型的好处:可以让所有对象实例共享它所包含的属性和方法。也就是说,不必在构造函数中定义对象信息,而是可以直接将这些信息添加到原型中。 //构造方法 function Box(name,age){ this.name = name; //添加属性 this.age... 阅读全文
posted @ 2013-09-22 17:38 cbhello 阅读(274) 评论(0) 推荐(1) 编辑
摘要:Javascript是一种基于对象的语言,一切都是对象;但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class;如果我们要把“属性”(property)和“方法”(method),封装成一个对象,甚至要从原型对象生成一个实例对象,我们应该怎么做呢?一 , 生成对象的原始模式 假定我们把box看成一个对象,它有“名字”和“颜色”等属性;var box = { name : '', color : '' } 根据这个原型对象的规格(schema),生成两个实例对象;var box1 = {}; // 创建一个空对象 box1.name = 阅读全文
posted @ 2013-09-22 16:47 cbhello 阅读(186) 评论(0) 推荐(1) 编辑