我期待 getName2 和 getName3 的行为相同,但 getName3 抛出错误(在非严格模式下打印“窗口”)
"use strict";
var name = 'The Window';
var object = {
name : 'The Object',
getName: function(){
alert(this.name);
}
};
object.getName(); // The Object
object.getName2 = object.getName;
object.getName2(); // The Object
(object.getName3 = object.getName)(); // Error: TypeError: this is undefined
此代码源自 N.Zakas 为 Web 开发人员编写的专业 Javascript 第 7 章中的示例。