进入域后,判断是移动端还是PC端显示不同的页面(PC/MOBILE)。很多时候,一个应用会有PC端和移动端两个版本,这两个版本差异大,内容多,无法使用。响应式开发是单独开发的,只有一个域名。用户进入域后,直接返回对应设备的应用。主要有两种方法:前端判断并跳转到某个应用或空白页面后,通过navigator.userAgent判断用户访问的设备类型,跳转到后端判断并响应相应的应用。当用户在地址栏输入域时,服务端可以接收到请求头中包含的userAgent信息,判断后返回相应的应用。functionfoo(){getName=function(){console.log(1)}返回这个}foo.getName=function(){console.log(2)}foo.prototype.getName=function(){console.log(3)}vargetName=function(){console.log(4)}functiongetName(){console.log(5)}foo.getName()//2//foo是一个函数,或者说是一个对象,所以它还可以挂载一些属性和方法,第18行在上面挂载了一个getName方法//执行的结果是getName()//4//第21行有一个全局函数,全局函数声明被行中的getName覆盖20前进后,所以输出4foo().getName()//1//foo()执行完成后,更改全局getName,即window.getName,并返回this,这里执行的是window,所以最后执行的是window.getName,所以输出1getName()//1//改变了上面的全局getName,所以还是1newfoo.getName()//2//new操作符实例化构造函数时,会执行构造函数,也就是说会执行foo.getName,输出2newfoo().getName()//3//new操作符的优先级更高,所以newfoo()会得到一个实例首先,然后执行实例方法的getName,此时如果实例的构造函数中没有getName方法,就会执行构造函数原型上的getNameMethodnewnewfoo().getName()//3//先执行newfoo()得到一个实例,然后在new实例的getName方法中,此时会执行这个方法,所以输出3//除局部对象方法外,其他函数可new
