美文网首页
js中的开发模式

js中的开发模式

作者: 张松1366 | 来源:发表于2016-07-20 16:25 被阅读0次

js中的开发模式进化史:



js中有最初的只能由基本数据类型描述——》单例模式--》工厂模式--》构造函数模式--》原型模式--》各个模式相结合的混合模式,下面我会给大家逐一讲解各个开发模式;

第一次模式升级引用了对象数据类型:

对象数据类型的作用级好处:1、分组,把描述同一个事物的所有属性放在一起来描述,每一组都是一个单独的个体(单独的实例);

        2、避免冲突-每一个分组中都有自己的私有属性及值,和其他分组不会产生冲突。

var person ={

    name:"张松",

    age:26

}

var person1 = {

        name:"zys",

       age:26;

}

我们用以上对象把两个个体实现了分组和独立开,我们说每一个对象都是一个单独的个体|实例    --这就是单例模式(就是一个普通的对象);person不仅叫对象名还可以叫做”命名空间“;

单例模式可以实现简易的”模块化开发“

2、工厂模式:

单例模式虽然实现了分组的作用,但是还是处于手工作业模式,为了增加生产的效率,实现批量生产,就有了工厂模式;

工厂模式其实就是一个函数;

函数的封装:把实现同一个功能的相同代码放在一个函数中,以后再想实现这个功能的时候,我们只需要直接的执行这个函数就可,减少了页面中的坑余代码,提高代码的重复使用率【低耦合高内聚】

function  sayHello(name){

   var obj={};

    obj.name = name;

obj.say= function(){ "Hello "+this.name};

return obj;

}

var person1 = sayHello("张松”);

person1.say();

js中存在多态一词,多态指的是一个方法的多种形态;

同一个方法根据执行时传递参数的不同(值不同、类型不同、参数数量不同)实现不一样的功能的操作就叫做多态

functionsortAry(ary, type) {

varnewAry= ary.slice(0);

vartemp=null;

for(vari=0;i

for(varj=0;j

if(newAry[j] >newAry[j+1]) {

temp=newAry[j];

newAry[j] =newAry[j+1];

newAry[j+1] =temp;

}

}

}

//如果type没有传递值小->大,传递了值就是大->小

typeoftype !=="undefined"?newAry.reverse() :null;

returnnewAry;

}

varary= [12,13,12,13,21,10];

console.log(sortAry(ary));

console.log(sortAry(ary,1));

3、构造函数:

构造函数模式:通过new一个类来创建一个实例;

构造函数模式和工厂模式的区别:

一般情况下,我们如果是通过构造函数来创建一个类的话,我们的类名第一个字母要大写,这不是规范,而是大家约定的一个规律;

1、在执行时,构造函数模式是通过 new Object()来执行的,我们把Object称之为一个类,而通过类创建出来的结果(person)就是当前类的一个实例;

2、类也是一个函数,所以也会像普通函数执行一样,形成私有的作用域,形参赋值,预解释,代码从上到下执行;但是构造函数模式在执行之前,浏览器默认会创建一个对象数据类型的值,并且会默认的把这个对象数据类型的值进行返回(不用自己手动的return返回了)

3、把浏览器默认创建的那个对象当做当前函数执行的整体(this)然后通过this。XXX这种方式给默认创建的对象添加属性和属性值

浏览器默认创建的这个对象其实就是我们当前类的一个实例

在构造函数模式创建一个类的时候,方法执行,里面的this其实就是我们当前类的一个实例

function SayHello(name){

   this.name = name;

this.say = function(){alert("Hello"+this.name)};

}

var p1 = new SayHello("张松“);

p1.say();

//类都是函数数据类型的

//console.log(typeof CreateJsPerson);//-->"function"

//类创建出来的实例都是对象数据类型的

//console.log(typeof p1);//-->"object"

关于原型模式后期继续》》》

相关文章

  • js中的开发模式

    js中的开发模式进化史: js中有最初的只能由基本数据类型描述——》单例模式--》工厂模式--》构造函数模式--》...

  • 面向对象-严格模式、作用域

    严格模式 js有两中开发模式:非严格模式(默认)+严格模式(“ues strict”) 严格模式:会进行更严格的代...

  • 开发中的严格模式

    js中有严格模式和非严格模式两种运行环境 在开发中,有非严格模式和严格模式2种开发模式 在严格模式下,会做更加严格...

  • JS - 开发中的设计模式

    导读: 日常开发中,一些特定的场景下你的处理方法可能并不是很理想,往往这时借助一些设计模式可以让你优雅而高效的实现...

  • Webview里面的js如何访问的后台

    Android代码 node server.js demo.html 这种常见的混合模式App开发中,js并不能访...

  • Weex & ReactNative

    1,异同点 相同点: 都采用Web的开发模式,使用JS开发; 都可以直接在Chrome中调试JS代码; 都支持跨平...

  • 《JavaScript设计模式与开发实践》阅读摘要

    《JavaScript设计模式与开发实践》作者:曾探 系统的介绍了各种模式,以及js中的实现、应用,以及超大量高质...

  • Android-Java和JavaScript相互调用

    当前的Android开发中,会使用大量的h5(html5+css3+js),甚至出现了混合开发模式(Hybrid)...

  • 基础

    JS 你不知道的 js 上中下 JavaScript 设计 模式 与 开发 实践 JavaScript 语言精粹 ...

  • Vue-day-06(前端工程化,ES6模块化语法,webpac

    1.1 模块化的相关规范 传统开发模式的主要问题 命名冲突:多个js文件中的同名变量会冲突文件依赖:js文件之间无...

网友评论

      本文标题:js中的开发模式

      本文链接:https://www.haomeiwen.com/subject/ncvvjttx.html