查看文章前你需要了解以下2点:
//1.this指向的是windows对象,通过console.log(this)可以查看到对象包含所有的方法和属性
//2.全局变量属于this对象的属性通过console.log(this)可以查看到对象包含我们设置的全局变量
我们经常在创建相同结构的Js对象会重复的设置对象属性和方法,造成太多的冗余代码,例如下面:
var box1=new Object(); box1.name='张三'; box1.age =14; var box2=new Object(); box2.name='李四'; box2.age =15;
我们为什么不用赋值的方式重写呢?因为对象属于引用类型,赋值后2个变量依旧引用同一个内存地址,一个发生变化,另一值也发生了变化。于是有了工厂模式
function createobject(name,age){
var obj=new Object();
obj.name=name;0
obj.age=age;
obj.run=function(){
return this.name+'--'+this.age;
}
return obj;
}
var box1=createobject('高久峰',23);
var box2=createobject('某美女',24);以上的工厂模式只是封装一个创建对象的方法,工厂模式的确解决的创建多个对象的问题,但是缺点是我们无法识别对象,因为它们都从属于Object对象。解决这个问题可以看看js构造函数文章。本站搜索。
https://3gimg.qq.com/lightmap/v1/marker/index.html?marker=coord:37.6767600000,112.7297800000&key=TKUBZ-D24AF-GJ4JY-JDVM2-IBYKK-KEBCU&referer=p...
<!-- 三个核心方法 openDatabase:这个方法使用现有数据库或创建...
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> </head> <body>...
<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> </head> ...
朋友面试时候遇到的问题,我天真的认为会输出0,1,2,但是实际一直只输出2,2,2。通过了解才执行Js自身是单线程的环境,for循环本身是同步代码,setTimeout是异步代码。单线程的语言不能同时做2件事情,必须做出选择。于是Js引擎决定了当我执行完成同步的代码,再去执行异步的代码。当执行异步的...