88
|
Jimmy Nitzan Tomer · 技术社区 · 15 年前 |
![]() |
1
64
为了保存上下文,
您可以使用它,在您的示例中如下所示:
另一个例子:
在第二个例子中,我们可以更多地观察
它基本上生成了一个新的函数,负责调用我们的函数,保留函数上下文(
其余的参数只是简单地传递给我们的函数。
注意在这个例子中,函数
现在,
|
![]() |
2
10
为了你的最后
在传递给的函数中
|
![]() |
3
7
我意识到这是一条旧线,但我有一个更优雅的解决方案,除了我注意到的一般不做之外,它几乎没有缺点。 考虑以下事项:
在上面的函数中,我们定义了一个局部变量(上下文)。然后我们添加了一个返回局部变量的原型函数(test)。正如您可能预测的那样,当我们创建这个函数的实例,然后执行测试方法时,它不会返回局部变量,因为当我们将原型函数定义为主函数的成员时,它不在定义局部变量的范围之内。 这是创建函数然后向其添加原型的一般问题——您不能访问在主函数范围内创建的任何内容。 要创建在局部变量范围内的方法,我们需要直接将它们定义为函数的成员,并去掉原型引用:
您可能会担心,因为这些方法不是以原型方式创建的,所以不同的实例可能不会真正地被数据分离。要证明它们是,请考虑:
使用此方法的另一种方法是创建单例。通常,我们的javascript函数不会被多次实例化。如果您知道永远不需要同一个函数的第二个实例,那么有一个创建它们的简写方法。不过,请注意:lint会抱怨这是一个奇怪的结构,并质疑您对关键字“new”的使用:
Pro的: 使用这种方法创建函数对象的好处是丰富的。
Con: 使用这种方法有一些缺点。我不会假装很全面。)
|
![]() |
4
4
|
![]() |
5
1
既然您使用的是jquery,那么值得注意的是
在这个例子中,
在哪里?
|
![]() |
6
1
可以创建对此对象的引用,也可以使用
|
![]() |
7
0
另一个解决方案(也是我在jquery中最喜欢的方法)是使用jquery提供的“e.data”传递“this”。然后你可以这样做:
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
![]() |
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
![]() |
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
![]() |
Andy Votava · 从父类定义调用学生方法 1 年前 |