美文网首页
关于$符号的一些思考

关于$符号的一些思考

作者: 苏敏 | 来源:发表于2017-11-22 20:44 被阅读11次

在看jquery的时候我就在想,为什么会有这个符号来代替JavaScript很多方面的工作呢,那它是如何做到这一点的呢?首先我觉得作者一定跟我一样不想每次都写document.gelElementById这么长的单词,怎么办呢,我试试能不能简化一下子~
比如有个这样的需求,页面上有个隐藏的按钮,

<button id="button">点击我</button>
<img id="image" src="xxx.jpg">

这太简单了,一分钟就写出来了

var button = document.getElementById('button');
var image = document.getElementById('image');

button.onclick = function(){
    image.style.display = 'none';
};

看着也不是很复杂嘛,但是我们改造一番,简化一下工作

var $ = function(id) {
    return document.getElementById(id);
};

$("button").onclick = function() {
    $("image").style.display = "none";
};

这里的$()就是最简单的包装器,只是返回的是原生的DOM对象

这个时候我们需要封装一下hide方法,不然老写xxx.style.display = "none"也要累死,首先我们可以拿最近学到的原型方法。

var $ = function(id) {
    return document.getElementById(id);
};
HTMLElement.prototype.hide = function() {
    this.style.display = 'none';
};
$('button').onclick = function() {
    $('image1').hide();
    $('image2').hide();
}

emmmm,似乎很好的工作了呢,到这里我们就收工了吗?好像还不行,HTMLElement兼容性不是很好,我们得再考虑考虑。
道格拉斯的object方法(等同于object.create方法)这个时候好像可以起到作用~

var F = function(id) {
    this.element = document.getElementById(id);
};
F.prototype.hide = function() {
    this.element.style.display = 'none';
};
document.getElementById('button').onclick = function() {
    new F('image1').hide();
    new F('image2').hide();
};

然后再修整一下子

var F = function(id) {
    return this.getElementById(id);
};
F.prototype.getElementById = function(id) {
    this.element = document.getElementById(id);
    return this;
};
F.prototype.hide = function() {
    this.element.style.display = "none";
};

new F("image").hide();

差不多ok了。什么?你要$,不要new F(id),好吧,请你往前面看第一步优化,

var $ = function(id) {
    return new F(id);
};

好了 收工,回家睡觉~

相关文章

  • 关于$符号的一些思考

    在看jquery的时候我就在想,为什么会有这个符号来代替JavaScript很多方面的工作呢,那它是如何做到这一点...

  • 关于〈符号与标语〉的思考

    符号是人们共同约定用来指称一定对象的标志物,它可以包括以任何形式通过感觉来显示意义的全部现象。在这些现象中某种可以...

  • iOS关于换肤和夜间模式的一些思考

    iOS关于换肤和夜间模式的一些思考 iOS关于换肤和夜间模式的一些思考

  • 自学是门手艺——学习记录4/100

    一、学习内容 5.1 关键词:函数、语句块、注释、操作符、赋值符号与操作符 二、学习思考 关于操作符和赋值符号,语...

  • 关于符号!

    #IP营销#关于符号: 品牌是一种符号 颜色是一种符号:比如王老吉的“红罐”,拿一个什么也没写的红罐你首先也会想到...

  • 关于引导机制的一些思考

    关于引导机制的一些思考

  • 关于“换位思考”的一些思考

    豆瓣上有个话题是“你什么时候真正开始换位思考的?”我刚看到这个话题的时候就觉得很有趣。 我认为有趣的地方在于,这个...

  • 关于一些思考

    此刻将近下午五点,天空还有一些亮光,一天都差不多待在室内,确实有点憋的慌,觉得好惆怅,脑子涨得不清楚,进食过量...

  • Markdown的简单用法

    关于Markdown的使用----给一些没用过markdown的朋友一些入门介绍 1、引用符号是小写的">",在段...

  • 第一章

    c陷阱与缺陷的读后总结第一章 关于词法“陷阱”(主要讲符号和组成符号的字符间的关系以及一些常见错误)新定义符...

网友评论

      本文标题:关于$符号的一些思考

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