小编Dag*_*bit的帖子

Javascript插件设计模式就像jQuery

有人可以在javascript中写下一个非常简单的基本示例来概念化(并希望让我理解)jQuery插件设计模式是如何完成的以及它是如何工作的?

我对如何为jQuery创建插件不感兴趣(所以在这里根本没有jQuery代码).我对一个简单的解释(可能有一些Javascript代码)感兴趣,以解释它是如何完成插件概念的.

Plz不回复我去读jQuery代码,我试过,但我太复杂了,否则我不会在这里发一个问题.

谢谢!

javascript plugin-pattern

7
推荐指数
2
解决办法
2005
查看次数

EXTENDS挑战:预处理器函数宏和类类oop

背景

我一直在使用C预处理器来管理和"编译"包含多个文件和构建目标的半大型JavaScript项目.这使全面进入C预处理指令一样#include,#define,#ifdef等从JavaScript中.这是一个示例构建脚本,因此您可以测试示例代码:

#!/bin/bash
export OPTS="-DDEBUG_MODE=1 -Isrc"
for FILE in `find src/ | egrep '\.js?$'`
do
  echo "Processing $FILE"
  cat $FILE  \
  | sed 's/^\s*\/\/#/#/'  \
  | cpp $OPTS  \
  | sed 's/^[#:<].*// ; /^$/d'  \
  > build/`basename $FILE`;
done
Run Code Online (Sandbox Code Playgroud)

创建一个src和一个build目录,然后放入.js文件src.


便利宏

最初,我只是想要预处理器的东西#include,也许还有几个#ifdef,但我想,有一些方便的宏也不是很好吗?随后进行了实验.

#define EACH(o,k)     for (var k in o) if (o.hasOwnProperty(k))
Run Code Online (Sandbox Code Playgroud)

很酷,所以现在我可以这样写:

EACH (location, prop) {
  console.log(prop + " : " location[prop]);
}
Run Code Online (Sandbox Code Playgroud)

它将扩展到: …

javascript shell macros preprocessor prototypal-inheritance

7
推荐指数
1
解决办法
607
查看次数

通过iframe脚本加载器避免全局变量的污染?

问题...

存在编码不良的脚本,需要包含在网页中.

这些脚本通过以下方式污染全局范围:

  • 将值分配给未声明的标识符
  • 向内置构造函数(如ObjectArray)及其原型添加属性
  • 其他讨厌的东西.

解?

我希望包含脚本而没有不良副作用.我认为可以通过在iframe中加载脚本并将对象导出为父窗口的属性来实现.这是我到目前为止所得到的:

<script>

(function(){
  var g=this, frameIndex=frames.length, f=document.createElement('iframe');

  // hide it like this instead of display:none, because some old browser ignores
  // iframes with display:none, or is this an ancient habit I can drop?
  f.style.width='0px'; f.style.height='0px'; 
  f.style.border='none'; f.style.position='absolute';

  // append it to document.body or document.documentElement?
  // documentElement seems to work before body is loaded,
  // but is it cross-browser safe?  
  document.body.appendChild(f);

  // window object for our iframe
  var w=frames[frameIndex];

  // …
Run Code Online (Sandbox Code Playgroud)

javascript iframe global-variables

7
推荐指数
1
解决办法
1229
查看次数

具有多个X和Y轴以及负轴值的JavaScript图表库

我玩过Google Charts和其他一些java脚本图表包,但我还没有达到预期的效果.我想知道是否有人能够指向我的JavaScript绘图包,开源或商业,他们知道能够创建我们目前使用.Net图表控件创建的以下类型的图表.

注意负轴...... XY散点图用线连接.Net Chart Control

在此输入图像描述

这里我们有多个X,Y轴.

在此输入图像描述

在这里,我们有时间轴,放大...

我们正在寻找一个JavaScript图表库,可以处理这种复杂性的图表,同时配置和使用仍然有点简单......任何想法?谢谢!

javascript charts asp.net-charts

7
推荐指数
1
解决办法
3907
查看次数

不同类型功能的术语

在JavaScript中似乎有几个不同的"组"类似函数的东西.以下是我的名字:

  • "常规函数":这些函数可以用parens和new.大多数功能都属于这一类.

  • "仅构造函数":这些函数new仅可调用.例如,Image,DOMParser等.

  • "非构造函数":这些函数可以用parens调用,但不能用new.例如Math.round,Function.prototype.

  • "不可调用函数":这些函数根本不可调用.例如,window.constructor,Document,NodeList,等.

这些不同功能组的专有名称是什么?


我还试图弄清楚函数所在的"组"是否可以根据其[[Prototype]](__proto__)属性是否设置来确定Function.prototype.

  • 大多数"常规功能"都有Function.prototype,但可以使用非标准功能删除__proto__.

  • 大多数"仅构造函数"具有Object.prototype.我找不到他们所拥有的任何情况Function.prototype(所以,没有callapply).这总是情况/规格行为吗?

  • "非构造函数"似乎主要Function.prototype与其Function.prototype自身有关.还有其他案例Object.prototype吗?

  • "不可赎回的功能"似乎总是如此Object.prototype.是这样的吗?


我会在这里回答一些答案:

常规函数:function
构造函数:constructor
非构造函数:method
不可调用:interface

这不是我真正想要的."函数"和"构造函数"当然是正确的,但我正在寻找更具体的东西("非构造函数"等).

"方法"并不比"函数"更好地告诉你它不能被调用new,并且constructor没有得到指出它只能被调用new.

在许多情况下,只能从constructor宿主对象的属性访问不可调用的函数.我认为大多数 …

javascript constructor terminology function

7
推荐指数
1
解决办法
927
查看次数

它是当前运行脚本的最后一个`script`元素吗?

假设script脚本运行时文档中的最后一个元素*是当前运行的脚本是否安全?

例如,我想创建一个脚本,可以将其放在页面正文的任何​​位置,并在同一个地方显示一个元素.我正在做这样的事情:

function getCurrentScriptElement() {
    var scripts = document.getElementsByTagName('script');
    return scripts[scripts.length - 1];
}

var script = getCurrentScriptElement();
var view = document.createElement('span');

/* Put stuff in our view... */

script.parentNode.insertBefore(view, script);
Run Code Online (Sandbox Code Playgroud)

假设脚本在文档正文中,这是"安全吗?" 该getCurrentScriptElement函数是否总是返回正在运行的脚本?如果没有,怎么办呢?

我想这样做而不将脚本绑定到特定的id属性或类似属性,我希望它只是位置.


我在这里创建了一个示例拉入此脚本.一个答案表明,其他脚本可能会创建一个像这样的例子会破坏的情况.是否可以在此示例中添加其他脚本来破坏它?


有人建议其他带有deferasync属性的脚本可能会破坏这一点.任何人都可以举例说明这样的脚本是如何工作的吗?

据我了解,defer意味着首先加载DOM,然后使用defer标记运行脚本.defer出现在另一个脚本元素上的属性如何影响getCurrentScriptElement?的行为?

async,据我所知,意味着开始获取该脚本并同时保持解析DOM,不要等待......但是当它到达我的脚本时它应该仍然停止并等待,对吧?

我不知道任何一个人如何影响它,任何人都能提供一个例子吗?


*出于此问题的目的,我只对外部脚本感兴趣.

**不是script整个文档中的最后一个script元素,而是运行时文档中的最后一个元素.该文档的其余部分尚未加载,对吧?

html javascript dom

7
推荐指数
1
解决办法
366
查看次数

JavaScript编码示例

我正在寻找一个开源JavaScript项目,我可以从中学习良好的编码实践,模式等.

例如,来自Java的等效"awesome code"示例可能是Spring项目内部.

我已经考虑过看看原型/ jquery,但有没有更好的(更好的是我的意思是更多的投入回报)?

我正在谈论你在java/ruby​​项目中找到的正确内容,而不是50行代码片段来动画我的按钮 - (抱歉这可能有点像JavaScript-ist).

javascript

6
推荐指数
1
解决办法
354
查看次数

这个javascript表达式的最高和最低结果?

这个javascript表达式可以评估的最高数字是多少?最低的数字是多少?为什么?

+(''+Math.random()).substring(2)
Run Code Online (Sandbox Code Playgroud)

额外信用:表达式可以评估多少个不同的值?可以是从最小值到最大值的每个值,还是由于舍入问题而无法获得的某些中间值?


回应丹尼尔的回答(删除,为10000000000000000最大,0分):

我在Chrome的控制台里玩,得到了这个:

    Math.random();

>> 0.00012365682050585747

    '12365682050585747'.length

>> 17

    12365682050585747 > 10000000000000000

>> true
Run Code Online (Sandbox Code Playgroud)

......所以10000000000000000不能是最大的!

javascript floating-point

6
推荐指数
1
解决办法
6068
查看次数

用于快速Java代码测试的Eclipse插件

我想知道是否有一个Eclipse的插件可以执行一些java表达式?

例如,我想找到SimpleDateFormat的正确模式,我可以创建新的类,然后我在其中初始化几个格式化程序,在编译和执行后,我将看到一个结果,但我希望能够在这个插件中编写那些格式化程序在没有新类的情况下查看并查看执行后的结果.

谢谢

java eclipse eclipse-plugin

6
推荐指数
1
解决办法
2049
查看次数

清除搜索查询的网址?

这有效:

HTML

<a href="/search/querystring">query</a>
Run Code Online (Sandbox Code Playgroud)

htaccess的

RewriteRule ^search/([-0-9a-z]+)$ /search.php?q=$1 [L]
Run Code Online (Sandbox Code Playgroud)

浏览搜索表单:

<form method="get" action="/search">
<input type="search" name="q" value="querystring" />
<input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

这是否可以使用htaccess或者我是否需要在search.php中使用PHP重定向?

示例所需的结果:http://twitter.com/search/hello

编辑

我不喜欢依赖JavaScript来执行此操作,因此搜索引擎和禁用JavaScript的人也会看到这一点.

php .htaccess search clean-urls

6
推荐指数
1
解决办法
7706
查看次数