1

我有以下内容:

var catCreyz = function() { console.log('maaaow'); }.call()

当我测试它的类型时:

typeof catCreyz

返回的结果是:

不明确的

为什么?

4

2 回答 2

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);
于 2013-07-31T04:53:16.817 回答
1

Call 执行函数,并且您的函数中缺少 return 语句,Javascript 不会像其他语言一样返回最后一个表达式。你必须显式地返回一个值,否则你会得到未定义的。

如果你想要一个 catCreyz 的实例,那么从表达式中去掉 call() 。

于 2013-07-31T04:54:13.473 回答