如何在匿名函数上使用bind函数
How to use bind function on an anonymous function
我不知道为什么我的代码不运行,有人能给我一些方向吗?当我运行这段代码并检查控制台时,我得到了错误
" Uncaught TypeError: (intermediate value)(intermediate value)(intermediate value)(intermediate value)不是一个函数"
var person = {
firstName: "Jane",
lastName: "Doe",
getFullName: function() {
var fullName = this.firstName + this.lastName;
return fullName;
}
}
(function() {
console.log(this.getFullName());
}).bind(person);
问题是您缺少一个分号(;
)。如果在person
声明的末尾没有分号,您的代码将有效地转换为以下内容:
var person = { firstName: 'Jane', ... }(function() {
console.log(this.getFullName());
}).bind(person);
从语法上讲,您试图将对象作为函数调用,然后将该函数的结果用作另一个函数。
这是你的更正代码:
var person = {
firstName: "Jane",
lastName: "Doe",
getFullName: function() {
var fullName = this.firstName + this.lastName;
return fullName;
}
};
// Isn't called because `bind` returns a new function
(function() {
console.log(this.getFullName());
}).bind(person);
// What you probably want to do
(function() {
console.log(this.getFullName());
}).call(person);
您可以加入一个分号和一个带括号的调用,因为var
语句还没有结束,并且试图调用对象person
。
var person = {
firstName: "Jane",
lastName: "Doe",
getFullName: function() {
var fullName = this.firstName + this.lastName;
return fullName;
}
}; // insert semicolon here
(function () {
console.log(this.getFullName());
}).bind(person)(); // add parenthesis
相关文章:
- 直接在函数声明上使用function.prototype.bind
- Javascript:函数bind.click&对于每个复选框
- 通过fn.apply或fn.bind将函数传递给setTimeout
- JavaScript:如何将“.bind()”“函数”到另一个对象
- 如何在我的函数中使用 .bind()
- 函数式编程 - .bind.apply for curry function.
- bind函数在javascript中不起作用
- 使用 function.bind 将函数绑定到此函数
- React Native (中间值) (中间值) .bind 不是一个函数
- 为什么chrome.debugger.attach 回调函数应该像cb.bind(null,..)一样使用
- 函数(){}.bind(this) 和 angular.bind(this, function() {}) 之间的区别
- 使用 bind 强制创建原型函数的上下文
- JQM .bind 函数调用挂起在方法上,但脚本仍会完成
- 将 JavaScript 的 .bind() 与回调函数集成
- JavaScript'有Ruby等价物吗;s函数.prototype.bind
- 如果对函数调用了.bind(),是否无法判断该函数是否为生成器函数
- 如何在一个函数jQuery中使用bind、on、unbind和off
- ajax搜索函数使用$(window).bind('hashchange',function(e)调用了
- Javascript函数bind override(如何将其绑定到另一个对象)
- 函数函数.bind(thing)(arg) vs函数函数.绑定(arg)