-1

我试着用。以前我在一年前使用过它,并且效果很好:

> 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)

有什么想法现在有什么问题吗?

4

2 回答 2

2

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

Sugar.extend();

更多信息:https ://sugarjs.com/quickstart/

于 2017-09-17T20:14:53.883 回答
1

根据SugarJS 的首页

从 v2.0 开始,原生扩展已成为可选,同时支持两种与库交互的新方式。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();

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

于 2017-09-17T20:14:26.513 回答