Javascript:在嵌套范围内访问/绑定父上下文/此
示例代码:Javascript:在嵌套范围内访问/绑定父上下文/此,javascript,Javascript,示例代码: render:function(){ this.getAsyncData(函数(){ this.specialFunction=(函数(){ //再次进行嵌套调用 }.约束(这个); this.specialFunction(); }.约束(这个); } 这里有一些方法- 使用bind()方法 使用var self=this然后在内部使用self 请列出访问父上下文的所有其他可能方式。在ES6中,如果您想保持相同的上下文,可以使用fat箭头 它等于ES6代码: function P
render:function(){
this.getAsyncData(函数(){
this.specialFunction=(函数(){
//再次进行嵌套调用
}.约束(这个);
this.specialFunction();
}.约束(这个);
}
这里有一些方法-
bind()
方法var self=this代码>然后在内部使用self
请列出访问父上下文的所有其他可能方式。在ES6中,如果您想保持相同的上下文,可以使用fat箭头 它等于ES6代码:
function Person() {
this.age = 0;
setInterval(() => {
this.age++; // |this| properly refers to the person object
}, 1000);
}
var p = new Person();
它等于ES5代码:
function Person() {
var _this = this;
this.age = 0;
setInterval(function () {
_this.age++; // |this| properly refers to the person object
}, 1000);
}
var p = new Person();
您可以在此处阅读有关箭头函数的更多信息
在Angular中,您可以使用vm
更好地处理作用域并避免嵌套作用域的问题。它可以添加控制器作为
语法
通过使用此功能,您可以在不使用$scope.$parent的情况下访问所需的任何范围。它还提供了更好的可读性,使代码更容易理解
<div ng-controller="ShopController as shop">
<p>{{ shop.name }}</p>
<div ng-controller="CustomerController as customer">
<p>{{ shop.address }}</p>
<p>{{ customer.address }}</p>
</div>
</div>
{{shop.name}
{{shop.address}
{{customer.address}
您可以在这里阅读更多内容在ES6中,如果希望保持相同的上下文,可以使用fat箭头 它等于ES6代码:
function Person() {
this.age = 0;
setInterval(() => {
this.age++; // |this| properly refers to the person object
}, 1000);
}
var p = new Person();
它等于ES5代码:
function Person() {
var _this = this;
this.age = 0;
setInterval(function () {
_this.age++; // |this| properly refers to the person object
}, 1000);
}
var p = new Person();
您可以在此处阅读有关箭头函数的更多信息
在Angular中,您可以使用vm
更好地处理作用域并避免嵌套作用域的问题。它可以添加控制器作为
语法
通过使用此功能,您可以在不使用$scope.$parent的情况下访问所需的任何范围。它还提供了更好的可读性,使代码更容易理解
<div ng-controller="ShopController as shop">
<p>{{ shop.name }}</p>
<div ng-controller="CustomerController as customer">
<p>{{ shop.address }}</p>
<p>{{ customer.address }}</p>
</div>
</div>
{{shop.name}
{{shop.address}
{{customer.address}
您可以在此处阅读更多内容这取决于您的需求<代码>绑定比
self
处理更多的用例,但是self
通常使用更少的内存。没有“最好”的方法,这完全取决于你的需求<代码>绑定比self
处理更多的用例,但是self
通常使用更少的内存。并没有“最佳”的方法。这并不能解决这个问题。我在ES6中添加了一句关于胖箭头的句子,但这个问题非常笼统,所以我认为最好用角度来写范围。它仍然不能解决这个问题。具体来说,它询问在一般情况下访问父作用域的最佳方式。关于箭头函数你是对的,但是你的大部分答案是关于如何在Angular中使用父作用域,这不是这个问题的重点。我为ES6 arrow函数添加了更多信息和代码示例。这并不能解决这个问题。我在ES6中添加了一句关于胖箭头的句子,但这个问题非常笼统,所以我认为用Angular编写作用域会很好。它仍然没有解决这个问题。具体来说,它询问在一般情况下访问父作用域的最佳方式。关于arrow函数你是对的,但是你的大部分答案都是关于如何在Angular中使用父作用域,这不是这个问题的内容。我为ES6 arrow函数添加了更多信息和代码示例。