课程咨询 :15265420612 QQ:2720475033

  • JavaScript API 设计原则(上)

    发布:潍坊java培训班      来源:潍坊java培训班      时间:2016-11-18

  • 潍坊java培训班小编看来,好的 API 设计:在自描述的同时,达到抽象的目标。

    设计良好的 API ,开发者可以快速上手,没必要经常抱着手册和文档,也没必要频繁光顾技术支持社区。

    流畅的接口

    方法链:流畅易读,更易理解

    //常见的 API 调用方式:改变一些颜色,添加事件监听

    var elem = document.getElementById("foobar");

    elem.style.background = "red";

    elem.style.color = "green";

    elem.addEventListener('click', function(event) {

    alert("hello world!");

    }, true);

    //(设想的)方法链 API

    DOMHelper.getElementById('foobar')

    .setStyle("background", "red")

    .setStyle("color", "green")

    .addEvent("click", function(event) {

    alert("hello world");

    });

    设置和获取操作,可以合二为一;方法越多,文档可能越难写

    var $elem = jQuery("#foobar");

    //setter

    $elem.setCss("background", "green");

    //getter

    $elem.getCss("color") === "red";

    //getter, setter 合二为一

    $elem.css("background", "green");

    $elem.css("color") === "red";

    一致性

    相关的接口保持一致的风格,一整套 API 如果传递一种熟悉和舒适的感觉,会大大减轻开发者对新工具的适应性。

    命名这点事:既要短,又要自描述,最重要的是保持一致性

    “There are only two hard problems in computer science: cache-invalidation and naming things.”

    “在计算机科学界只有两件头疼的事:缓存失效和命名问题”

    — Phil Karlton

    选择一个你喜欢的措辞,然后持续使用。选择一种风格,然后保持这种风格。

    处理参数

    需要考虑大家如何使用你提供的方法,是否会重复调用?为何会重复调用?你的 API 如何帮助开发者减少重复的调用?

    接收map映射参数,回调或者序列化的属性名,不仅让你的 API 更干净,而且使用起来更舒服、高效。

    jQuery 的 css() 方法可以给 DOM 元素设置样式:

    jQuery("#some-selector")

    .css("background", "red")

    .css("color", "white")

    .css("font-weight", "bold")

    .css("padding", 10);

    这个方法可以接受一个 JSON 对象:

    jQuery("#some-selector").css({

    "background" : "red",

    "color" : "white",

    "font-weight" : "bold",

    "padding" : 10

    });

    //通过传一个 map 映射绑定事件

    jQuery("#some-selector").on({

    "click" : myClickHandler,

    "keyup" : myKeyupHandler,

    "change" : myChangeHandler

    });

    //为多个事件绑定同一个处理函数

    jQuery("#some-selector").on("click keyup change", myEventHandler);

    更多资讯扫请描下方二维码!

    潍坊java培训班

上一篇:avaScript 数组中的 indexOf 方法详解

下一篇:JavaScript API 设计原则(中)

最新开班日期  |  更多

Java--零基础全日制班

Java--零基础全日制班

开班日期:6月30日

Java--大数据周末班

Java--大数据周末班

开班日期:6月30日

Java--大数据全日制班

Java--大数据全日制班

开班日期:6月30日

Java--零基础周末班

Java--零基础周末班

开班日期:6月30日

 扫一扫,关注一下! 潍坊:奎文区东风东街299号建行大厦 济宁:市中区太白路10号苏宁生活广场
烟台:海港路25号阳光100城市广场 临沂:兰山区红旗路1号苏宁易购
淄博:张店区金晶大道68号华润大厦 济南:历下区趵突泉北路三联商社
济南:历下区山大路47号数码港大厦 青岛:市南区金坛路17号
课程培训电话:15265420612 QQ:2720475033 全国服务监督电话:400-111-8989    服务邮箱 tousu@tedu.cn

2001-2017 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56