【发布时间】:2015-09-16 14:54:52
【问题描述】:
我正在学习 JavaScript,遇到了这个 sn-p,它演示了类型检测:
var toClass = {}.toString // Copy a reference to toString for objects into toClass variable
alert( toClass.call( [1,2] ) ) // [object Array]
alert( toClass.call( new Date ) ) // [object Date]
我不明白第一行中的空大括号是什么意思,所以我这样删除它们:
var toClass = toString
而且代码仍然有效。 但是在下面的代码中,
function getAge () {
alert(this.age);
}
var p1 = {
age:1
};
var tellAge=getAge;
tellAge.call(p1); //1
如果我将var tellAge=getAge 更改为var tellAge={}.getAge,我会收到一个错误:无法读取未定义的属性“调用”。
为什么是这样?是不是因为toString是内置函数?
【问题讨论】:
-
在下面查看我的答案,以逐行概述您的代码在做什么以及它是如何工作的。
标签: javascript function tostring