“this.foo”总是与“foo.bind(this)”相同吗?
Is `this.foo` always the same as `foo.bind(this)`?
只是想知道这两者是否总是相同的,如果不是,在什么上下文中?我想我理解"绑定"和"这个",我只是想确定一下。
我试图理解的上下文,超越"绑定"和"这个",
我有一个对象..
var Foo = Class.create({
a: func.bind(this),
b: func
});
和a
和b
this
是一样的吗?两者有什么区别。如果b
得到这个,则在Foo.b
上下文中的被调用方Foo
被调用方。在a
的情况下,我们明确表示this
是我们安装方法时的对象 a
.
它并不总是相同的。
例:
'use strict';
function bar() {
// here is your code
}
bar();
这是this.foo
和foo.bind(this)
不同的时候,因为使用'use strict';
时this
undefined
在bar
中。
更新问题:
A和B是一样的吗?两者有什么区别。如果 b 得到这个,则在 Foo.b 上下文中的被调用方是 Foo。在 a 的情况下,我们明确表示这是我们安装方法 a 时的对象。
它们是对 2 个不同对象的引用。调用的行为取决于您如何准确调用它们。如果没有调用它们的代码,就不可能说它们的行为方式是相似还是不同。
var Foo = Object.create({
a: func.bind(this),
b: func
});
Foo.a();
Foo.b();
使用此代码,它们的行为将有所不同:
-
this
在func
内部,以防a
等于func.bind(this)
调用范围内的this
-
this
在func
内,以防b
等于Foo
JSFiddle: http://jsfiddle.net/tsuddg1o/
另一个更新
对象构造代码等于:
var tmp = func.bind(this);
var Foo = Object.create({
a: tmp,
b: func
});
相关文章:
- $(this).prop('property') vs. this.property
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- 在另一个函数中使用变量this
- this.router在AngularJS 2中未定义
- reactjs this.refs vs document.getElementById
- JavaScript 中的嵌套函数和 “this” 关键字
- React+Meteor:this.ops返回未定义
- javascript中对象构造函数中的var属性与this.properties
- 函数中this和var之间的区别
- jQuery(this).Pparent().Pparente().Prent().find()在iPad上不起作用
- if(foo!==null)的计算结果为true,即使foo为null
- “this.foo”总是与“foo.bind(this)”相同吗?
- 获取 template.foo.rendered 中集合实例this._id
- 聚合物 - 有人可以解释一下聚合物中使用的this.$.foo.bar JavaScript语法
- Javascript Error: this.replace($foo, "");
- <a href="javascript:foo(this)">通过Window,我想要标记
- inner text of element passed as <span onclick=foo(this) &
- this.state.foo在_onChange和render()中是不同的
- Javascript -这两者之间有区别吗?Foo和this.prototype.foo
- 在这个代码中,为什么foo和this.foo指的是不同的东西