Javascript Can';不要使用sugar.js函数

Javascript Can';不要使用sugar.js函数,javascript,node.js,sugar.js,Javascript,Node.js,Sugar.js,我试着用。以前我在一年前使用过它,它的工作方式很好: > npm install sugar test@1.0.0 D:\work\test\test `-- sugar@2.0.4 > node >> require('sugar'); { [Function: Sugar] ..... Array: { [Function: SugarChainable] ..... compact: [Function: compact], .... >&

我试着用。以前我在一年前使用过它,它的工作方式很好:

> npm install sugar
test@1.0.0 D:\work\test\test
`-- sugar@2.0.4
> node
>> require('sugar');
{ [Function: Sugar]
.....
 Array:
   { [Function: SugarChainable]
   .....
   compact: [Function: compact],
....
>> [1,null,2,undefined,3].compact()

TypeError: [1,null,2,undefined,3].compact is not a function
    at repl:1:24
    at ContextifyScript.Script.runInThisContext (vm.js:23:33)
    at REPLServer.defaultEval (repl.js:339:29)
    at bound (domain.js:280:14)
    at REPLServer.runBound [as eval] (domain.js:293:12)
    at REPLServer.onLine (repl.js:536:10)
    at emitOne (events.js:101:20)
    at REPLServer.emit (events.js:191:7)
    at REPLServer.Interface._onLine (readline.js:241:10)
    at REPLServer.Interface._line (readline.js:590:8)
你知道现在怎么了吗?

根据:

从v2.0开始,本机扩展已经成为opt-in,同时支持与库交互的两种新方式。Sugar仍然相信本地人的安全扩展,但是有时这是不合适的,现在这一选择就交给了用户

因此,您需要使用可链接的Sugar API:

var arr = new Sugar.Array([1,null,2,undefined,3]);
arr.compact();
这可以制成一个内衬,如下所示:

(new Sugar.Array([1,null,2,undefined,3])).compact()
或扩展本地人:

Sugar.extend();

虽然扩展看起来更简单,但他们之所以构建它,是有原因的,所以您需要选择使用此功能。简单地说,扩展原型是危险的,因为多个库可能想要扩展相同的原型,并且会导致它们的方法发生冲突。

要在本机对象上使用这些函数,您需要调用:

Sugar.extend();

更多信息:

请更新您的答案,以解释您正在尝试做什么以及正在发生什么。要使用sugar函数,您首先需要创建一个数组的sugar实例,如:
var\u sugar=new sugar.array([1,2])
,然后您可以在
\u sugar
上使用sugar数组函数