为什么创建一个名为“构造函数”的键似乎会改变“this”的行为?以此代码为例:
var O = {
constructor: function f1(){},
k2: function f2(){return this;}
};
console.log(O.k2());//logs "f1"
有人会认为“this”将是“Object”,因为它在对象文字中,但如果我使用名称“constructor”作为键突然其内部的函数变为“this”。如果我试试这个,我会得到'对象':
var O = {
k1: function f1(){},
k2: function f2(){return this;}
};
console.log(O.k2());//logs "Object"
键名“构造函数”是否具有_ _ proto _ _和prototype等特殊行为?老实说,我不明白为什么“这个”在这里附加到函数f1。