var self=这在原型上定义的方法中多次出现
var self=this multiple times in methods defined on the prototype?
如果你必须对原型对象的方法使用 var self=this。你会在每个方法中写 var self=this 吗?
有没有办法避免在所有方法中编写 var self =this?
function Test () {
}
Test.prototype.method1 = function () {
var self = this;
};
Test.prototype.method2 = function () {
var self = this;
};
如果要
引入具有仍需要访问类this
上下文的函数文本的新上下文,则只需为this
上下文创建别名。
function Test () {}
Test.prototype.method1 = function () {
// This is fine.
this.someProperty = 123;
this.doSomething();
};
Test.prototype.method2 = function () {
var self = this;
var callback = function() {
// The `this` here is no longer the same `this` as outside the function.
self.someProperty = 456;
};
var anotherCallback = function() {
// No reference to the class's `this` needed here.
alert('Boo');
};
this.doAsyncThing(callback);
};
或者,您可以使用Function.prototype.bind
强制this
上下文:
var callback = function() {
this.someProperty = 456;
}.bind(this);
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 用于检查数组中是否存在元素的javascript自定义方法
- Meteor-添加用户自定义字段的方法不起作用
- 骨干's Router.execute(callback,args,name)方法获取未定义的名称
- 在angularjs中创建自定义控件的推荐方法
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 去掉多余的方法定义
- Javascript方法定义失败
- 属性定义是使用敲除时的方法定义
- Javascript:使用eclipse跳转到方法定义
- 使用以下两种方法定义的方法之间的差异
- 为什么函数属性定义在对象本身上(例如Function.name),而方法定义在Function.prototype上?
- ES6箭头函数和方法定义的区别
- 如果没有“函数”,这个对象方法定义如何工作?关键字
- 使用DOM方法定义文本框的动态宽度
- Javascript方法定义不一致
- 为什么实例方法定义在原型中,而实例字段定义在构造函数中?
- Reactjs最好的策略是为渲染方法定义一个变量
- 在JavaScript中:类中函数和方法定义之间的语法差异