//原型的缺点 function Box(){} Box.prototype={ 'name':'gao', age:23, family:['哥哥','姐姐','妹妹'], run:function(){ return this.name+'--'+this.age; } } //1.缺少构造函数来初始化参数 var box1=new Box(); var box2=new Box(); box1.age=12; //2.原型中存在引用类型,多个实例会共享.例如1个追加数组元素,其他实例同时被追加 box1.family.push('弟弟'); console.log(box1.family); console.log(box2.family); console.log(box2.age); //3.解决以上2个问题 //不需要共享的使用构造方法 function BBox(name,age){ this.name=name; this.age=age; this.family=['1','2','3']; } //需要共享的地方使用原型 BBox.prototype={ constructor:BBox, run:function(){ return this.name+'--'+this.age+'--'+this.family; } } var bbox1=new BBox('gao',23); console.log(bbox1.run()); //4.由于在原型中,不管你是否调用了共享方法,它都会初始化一遍,于是我们可以简化如下.简称动态原型模式 function BBBox(name,age){ this.name=name; this.age=age; this.family=['1','2','3']; //原型只需要执行1次,立即共享 if(typeof this.run !='function'){ BBBox.prototype.run=function(){ return this.name+'--'+this.age+'--'+this.family; } } } var BBBox1=new BBBox('chen',24); console.log(BBBox1.run());
<!-- 三个核心方法 openDatabase:这个方法使用现有数据库或创建...
二期项目中生成的简历二维码是使用canvs生成的,微信浏览器中不能识别二维码,只能扫码。懒的换phpqrcode,于是转canvs。//设置一个url var url = "{yun:}$config.sy_weburl{/yun}/mingli/index....
查看文章前你需要了解以下2点://1.this指向的是windows对象,通过console.log(this)可以查看到对象包含所有的方法和属性//2.全局变量属于this对象的属性通过console.log(this)可以查看到对象包含我们设置的全局变量我们经常在创建相同结构的Js对象会重复的设...
rem原理和简介(1).字体单位单位的值是根据html根元素大小而定,同样可以作为宽度高度单位(2).适配原理将px替换为rem,动态修改html的font-size适配(3).单位1rem=16px,why? F12中1rem在computed中font-size属性中会显示为font-size:...
HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新。通过官网的介绍可以看出是接收服务器发送数据,千万不能和ajax混淆,网上大片博文的介绍对其解读是错误的,导致让我差点觉得这个事件很鸡肋。先看通用案例:html5:<script type=&...
在es5的时候变量只能通过+号拼接,es6种允许将变量放在大括号之中。有点类似php和c#对字符串的操作。 <script type="text/javascript"> &n...