小编Tom*_*rdt的帖子

主体上的Javascript事件处理程序,但不是输入

我有以下事件处理程序

document.addEventListener('keydown', handleBodyKeyDown, false);

如何在输入框内防止它发生

javascript

12
推荐指数
1
解决办法
1万
查看次数

从字符串中删除文本,直到达到某个字符

我正试图找出这个问题.我需要"修复"一些链接,这是一个例子:

  1. www.site.com/link/index.php?REMOVETHISHERE
  2. www.site.com/index.php?REMOVETHISHERE

所以基本上我想删除所有东西,直到它到达?字符.谢谢你的帮助.

c# string split

11
推荐指数
1
解决办法
2万
查看次数

为什么在javascript中使用链式原型继承?

PERF

为什么我们构建原型继承链而不是使用对象组合.通过原型查看链中的每个步骤都很昂贵.

这是一些虚拟示例代码:

var lower  = {
    "foo": "bar"
};

var upper = {
    "bar": "foo"
};

var chained = Object.create(lower,  pd(upper));

var chainedPrototype = Object.create(chained);

var combinedPrototype = Object.create(pd.merge(lower, upper));

var o1 = Object.create(chainedPrototypes);
var o2 = Object.create(combinedPrototypes);
Run Code Online (Sandbox Code Playgroud)

使用,pd因为属性描述符是冗长的地狱.

o2.foo比较快,o1.foo因为它只上升了两个原型链而不是三个.

由于在原型链上行进是昂贵的,为什么我们构造一个而不是使用对象组合?

另一个更好的例子是:

var Element = {
  // Element methods
}

var Node = {
  // Node methods
}

var setUpChain = Object.create(Element, pd(Node));
var chained = Object.create(setUpChain);
var combined = Object.create(pd.merge(Node, Element));

document.createChainedElement = …
Run Code Online (Sandbox Code Playgroud)

javascript oop prototypal-inheritance prototype-programming

10
推荐指数
1
解决办法
833
查看次数

Javascript中继承建模的优缺点?

我意识到Javascript没有类,并且没有构建为具有经典的OOP继承.但是我发现这样的模式非常有用,我想构建一种简单的方法来模拟这种行为,理想的是利用Javascript灵活性的最佳部分.以下方法的优缺点是什么?

我的自定义库中有以下功能:

function inherit(superClass, args, instance) {
    var subClass = inherit.caller;
    var o = new superClass(args);
    for(p in o) {
        if(o.hasOwnProperty(p)) init(instance, p, o[p]);
        else init(subClass.prototype, p, o[p]);
    }
}

function isUndefined(x) {var u; return x === u;}

// sets p to value only if o[p] is undefined
function init(o, p, value) {if(isUndefined(o[p])) o[p] = value;}
Run Code Online (Sandbox Code Playgroud)

此设置需要两个约定:

  1. 建模类的函数必须使用一个参数:具有命名属性的对象
  2. 希望从另一个"继承"的函数必须调用inherit函数.

以下是您获得的结果的示例(粘贴到Firebug命令行以及库函数,以查看它的运行情况):

function SuperClass(args) {
  this.x = args.x;
}

SuperClass.prototype.p = 'SuperClass prototype property p';

function SubClass(args) {
  inherit(SuperClass, args, this);
  this.y …
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance prototype-programming

9
推荐指数
1
解决办法
1992
查看次数

在构造函数中定义原型方法

今天,我看到了我一生中从未见过的JavaScript模式.我无法说出使用这种模式的目的.这对我来说似乎不对,但我想保守一点.这可能是我以前从未见过的一些很棒的模式.

function Dog() {
    Dog.prototype.bark = function () {
        alert('woof!');
    }

    this.bark = function () {
        Dog.prototype.bark();
    }

    this.bark();
}
Run Code Online (Sandbox Code Playgroud)

首先,我不是没有理由在构造函数中创建方法(作为特权成员)的粉丝.每次创建实例时都会导致创建函数.其次,在这段代码片段中,它还调用原型名称"Dog",而不是"this".这让我非常困惑.

谁知道它有什么好处?

谢谢!恩典

javascript prototype-programming

9
推荐指数
1
解决办法
4605
查看次数

.NET的NLP框架

我发现了对SharpNLP(基于Java的OpenNLP的端口)和Proxem的Antelope的引用.我正在寻找创建句子的完整解析树(词性标注),以及日期/时间和位置的名称查找.

SharpNLP库自2007年以来似乎处于非活动状态,看起来Antelope库最后一次更新是在2009年.前者是LGPL,后者似乎需要商业许可证,但安装程序自行将许可证描述为"未指定".

是否有适用于.NET的现代NLP库?NLP有更好的平台选择吗?(对于我来说,拥有一个优秀的NLP实现比坚持平台选择更重要).

.net nlp

9
推荐指数
1
解决办法
4280
查看次数

无法将List <KeyValuePair <...,... >>转换为IEnumerable <object>?

尝试这样的事情时获取InvalidCastException:

IEnumerable<object> test = (IEnumerable<object>)new List<KeyValuePair<string, int>>();
Run Code Online (Sandbox Code Playgroud)

但是,这确实有效:

IEnumerable<object> test = (IEnumerable<object>)new List<Dictionary<string, int>>();
Run Code Online (Sandbox Code Playgroud)

那么最大的区别是什么?为什么KeyValuePair不能转换为对象?

更新:我应该指出这确实有效:

object test = (object)KeyValuePair<string,string>;
Run Code Online (Sandbox Code Playgroud)

c#

9
推荐指数
2
解决办法
3541
查看次数

忘了我的口号for git

我试图提交一个我创建的新项目,但在输入命令后它会询问密码:git push -u origin master.我不记得我在设置帐户时输入的密码.我可以通过git网站访问该帐户.

github

9
推荐指数
2
解决办法
8566
查看次数

将Javascript getters/setter复制到另一个原型对象

// Base class
var Base = function() {
    this._value = 'base';
};
Base.prototype = {
    constructor: Base,
    // By function
    getValue: function() {
        return this._value;
    },
    // By getter
    get value() {
        return this._value;
    }
};

// Sub class extends Base
var Sub = function() {
    this._value = 'sub';
};
Sub.prototype = {
    constructor: Sub
};
// Pass over methods
Sub.prototype.getValue = Base.prototype.getValue;
Sub.prototype.value = Base.prototype.value;

// ---

var mySub = new Sub();
alert(mySub.getValue()); // Returns 'sub'
alert(mySub.value);      // Returns …
Run Code Online (Sandbox Code Playgroud)

javascript getter setter extending prototype-programming

8
推荐指数
3
解决办法
5489
查看次数

这个Array切片调用中的原型,为什么?

我正在阅读JS Function的arguments变量的MDN页面:

https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments

我知道参数不是数组,所以这不起作用:

var a = arguments.slice();
Run Code Online (Sandbox Code Playgroud)

MDN上的解决方案是这样做的:

var args = Array.prototype.slice.call(arguments);
Run Code Online (Sandbox Code Playgroud)

为什么使用Array.prototype而不仅仅是Array.slice.call(arguments)?在这里使用原型显着吗?

javascript prototype-programming

8
推荐指数
1
解决办法
1342
查看次数