草庐IT

private-functions

全部标签

javascript - 如何对 jquery 插件中的私有(private)方法进行单元测试?

也许这是一个JQuery新手问题,但是:适当的jquery插件写在闭包中因此只能从外部访问定义插件接口(interface)的方法有时(或多次)人们可能需要辅助方法,但将这些方法作为插件接口(interface)的一部分公开是没有意义的(例如,因为它们会改变内部状态)。如何对这些进行单元测试?例如,查看blockUI插件,方法安装、删除、重置如何进行单元测试?为了画一个平行线,在Java中我会:创建一个仅包含公共(public)方法的BlockUI接口(interface)(根据定义)创建一个实现上述接口(interface)的BlockUIImpl类。此类将包含install()、r

javascript - 关于 Function.prototype.bind() 的困惑

我是ES5的Function.prototype.bind和柯里化(Currying)参数(基本上是为函数创建默认参数)的super粉丝。我有点胡闹,但我再也无法弄清楚自己的构造了。这是我的Playground:functionhello(arg1,arg2){console.log('hello()');console.log('"this"is:',this);console.log('arguments:',arguments);}varfoo=Function.prototype.call.bind(hello,{what:'dafuq'},2);foo(42);日志输出如下:

javascript - 在 ES6 类中拥有私有(private)属性和方法

这个问题在这里已经有了答案:PrivatepropertiesinJavaScriptES6classes(41个回答)关闭6年前。我只是在试用ES6,并想将用常规javascript编写的一部分代码重写为ES6。现在,我在尝试重写ES6类中的私有(private)属性和方法时遇到了困难。似乎ES6中的类没有明确提供任何拥有私有(private)数据或方法的东西。另外,我检查了这个线程:PrivatepropertiesinJavaScriptES6classes并发现我们可以使用WeakMap来存储私有(private)数据。这有点奇怪,但仍然可以解决。而且我确实设法将它用于私有(p

javascript - 在 JavaScript 中,什么是终极根,Object 还是 Function?

在JavaScript中,对象是所有实体的根还是函数是根?例如在下面的来源objects-functions-and-prototypes-in.html,首先作者说“Javascript中的每个实体都是一个对象”,后来又说“任何新对象只能作为函数的实例创建(即使你做'vara=newObject;',对象是一个功能顺便说一句)”。据我所知,作者基本上是在自相矛盾。而且我在很多关于JavaScript的其他资源中看到了同样困惑的评论。在Java中很容易,您知道任何类层次结构中的第一个实体都是Object类,但在JavaScript中,我看到的只是困惑。那么,有人可以澄清一下是对象在前还

javascript - AngularJS 指令 : put a call function in an attribute, 不包含另一个属性

我在追求什么我想创建一个ngLoad我网页上的图像指令。这是我的首选标记:我有什么JSFiddle现在,我有一个imgLoad带有ngLoad的指令在scope中指定,像这样:varapp=angular.module('app',[]);app.directive('imgLoad',[function(){return{restrict:'A',scope:{loadHandler:'&ngLoad'},link:function(scope,element,attr){element.on('load',scope.loadHandler);}};}]);生成的标记是:编辑:我之

javascript - 如何在javascript中定义私有(private)构造函数?

我在JS中定义了纯对象,它公开了某些应该用于构造它们而不是构造函数的静态方法。如何在Javascript中为我的类创建一个私有(private)的构造函数?varScore=(function(){//TheprivateconstructorvarScore=function(score,hasPassed){this.score=score;this.hasPassed=hasPassed;};//ThepreferredsmartconstructorScore.mkNewScore=function(score){returnnewScore(score,score>=33);

javascript - Function.bind.bind(Function.call) 如何取消柯里化(Currying)?

我的代码库中有这一行:varuncurryThis=Function.bind.bind(Function.call);我正在努力解决这个问题。据推测,它是uncurries。我该如何解决这个问题?我猜这是Function.bind的一个版本,它自己的this绑定(bind)到Function.call。对我的帮助还不够。而且我还没有发现任何用途,所以我什至不确定您是将其独立调用还是需要将其“作为一种方法”调用,只是,您知道,先绑定(bind)它。 最佳答案 它将call函数传递给bind函数,bind函数本身就是this的值>。因

javascript - 为什么许多 JavaScript 库以 "(function () {"开头?

为什么很多javascript库看起来像这样:(function(){/*codegoeshere*/})();它似乎定义了一个立即调用的未命名函数。为什么要付出这样的努力? 最佳答案 这是在JavaScript中进行命名空间的标准方法。如果你只是声明varmy_cool_variable=5;它将是全局的,可能会与使用相同变量的其他库冲突。但是,如果你这样做了(function(){varmy_cool_variable=5;})();它现在是匿名函数的局部变量,在该函数范围之外是不可见的。您仍然可以通过不在变量前声明var来公开

javascript - 如何计算JavaScript中多个数组的交集?什么是 [等于 : function] mean?

我知道thisquestion,simplestcodeforarrayintersection但是所有的解决方案都假定数组的数量是两个,这在我的情况下不能确定。我在页面上有div,其中的数据包含数组。我想找到所有数组共有的值。我不知道我会提前有多少个div/数组。计算所有数组共有的值的最佳方法是什么?vararray1=["Lorem","ipsum","dolor"];vararray2=["Lorem","ipsum","quick","brown","foo"];vararray3=["Jumps","Over","Lazy","Lorem"];vararray4=[1337,

javascript - 主干 View 的私有(private)和公共(public)变量

在BackboneView中,您会将私有(private)变量和公共(public)变量放在哪里。现在我有这样的东西:myView=Backbone.View.extend({initialize:function(options){this.myPublic="I'mpublic";}});我尝试在初始化方法之前添加一个varmyPrivate但它抛出了一个错误。只在View中使用的私有(private)变量会去哪里? 最佳答案 我建议您使用initialize方法作为所有其他方法的闭包。我认为这将使您的行为与我们在经典继承语言(