我有以下内容:
var catCreyz = function() { console.log('maaaow'); }.call()
当我测试它的类型时:
typeof catCreyz
返回的结果是:
未定义
为什么?
答案 0 :(得分:4)
Function.prototype.call返回被调用函数返回的内容。你的函数什么都不返回
var catCreyz = function() { console.log('maaaow'); }.call()
//logs undefined
console.log(catCreyz);
var result = function() { return "foo"; }.call()
//logs foo
console.log(result);
var myFunc = function() { console.log('maaaow'); }
//logs the function
console.log(myFunc);
答案 1 :(得分:1)
调用执行函数,你在函数中缺少一个return语句,Javascript不会像其他语言一样返回最后一个表达式。您必须显式返回一个值,否则您将得到未定义。
如果你想要一个catCreyz的实例,那么从表达式中取出call()。