调用嵌套函数的外部函数
Calling an external function of nested function
谷歌日。
var obj = new Foo("start");
Foo = function(some){
this.first = function(){
alert("First");
$(".clazz").click($.proxy(this.second,this));
};
this.second = function(){
$(".clazz").append("<span>Second</span>");
//this.out() // Problemb with called a method "this.out()"
};
this.out = function(){
$(".clazz").append("<a>Out</a>");
// Code
};
this.constructor = function(some){
this.first();
};
this.constructor(some);
};
如何从方法this.second调用方法this.out?
jsfiddle
一种常见的模式是显式声明一个包含对对象引用的局部变量。这通常被称为self
或_this
。好处是,无论其他代码做什么,您的函数都将始终绑定到您的对象。在下面的示例中,我们看到this.prop
并不总是正确绑定。然而,通过仅使用self
来引用对象,我们可以避免围绕此的所有问题。
JavaScript库经常使用apply
或call
,以我们不希望的方式绑定我们的函数。
function Foo(arg1){
var self = this;
self.prop = arg1;
self.first = function(){
};
self.second = function(){
alert("this.prop = " + this.out() + "'n" + // 2 (baz.prop)
"self.prop = " + self.out() + "'n"); // 1 (bar.prop)
};
self.out = function(){
return this.prop; // Depends on the context, we should use self.prop
};
}
var bar = new Foo(1);
var baz = new Foo(2);
bar.second.apply(baz);
这是一把小提琴
相关文章:
- 访问函数外部的变量
- appendChild在函数外部工作,但在函数内部不工作
- 使用在函数外部声明的变量的 Javascript 返回值 + undefined
- JavaScript未定义的函数外部JavaScript文件
- 没有在函数外部分配全局变量
- 在挖空中引用对象构造函数外部视图模型的属性
- 访问函数外部的变量
- JS:从函数外部调用变量
- 在函数外部的 Angularjs 中访问 $http.get 的结果
- JQuery 更改函数外部的变量值
- 函数外部的 clearTimeout() 无法正常工作
- Javascript - 无法获取函数来设置要在函数外部使用的全局变量
- 如何设置 var self = this;从函数外部
- 在 JavaScript 中维护函数外部变量的值
- 为什么匿名函数中的私有变量可以从 javascript 中的函数外部访问
- 如何在函数外部获取变量的值
- 如何在函数外部访问 Javascript 变量值
- 节点.js在函数外部获取 MySQL 的结果
- 如何使用 $http.get 每 3 秒发出一个新请求并在函数外部获取数据
- 在 Phonegap DB 函数中返回函数外部的变量