Javascript中正常函数声明和内部返回块函数声明之间有什么区别。
代码正常函数名称:updatename,函数名称:changeName
function person(firstName,lastName,age,eyeColor) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.eyeColor = eyeColor;
this.updatename = function (name) {
this.lastName = name;
}
return {
'changeName' : function (name) {
this.lastName = name;
}
};
}
var myMother = new person("Sally","Rally",48,"green");
console.dir(myMother);
console.log(typeof(myMother.changeName));
console.log(typeof(myMother.updatename));
myMother.changeName("Doe");
答案 0 :(得分:1)
如果从函数返回一个对象,然后将其作为带有new
的构造函数调用,则该函数的原始this
为THROWN AWAY AND IGNORED AND LOST FOREVER。换句话说,this.firstName
的价值在这个世界上再也无法获得。你想通过返回那个对象字面来完成什么?
JavaScript中的普通函数声明和内部返回块函数声明有什么区别?
差异(假设您的意思是方法声明)是正常声明执行您通常会想象的那样。 "内部返回块函数声明"覆盖并取消this
的原始值,而是使用单个方法返回JUST THAT OBJECT,这可能不是您想要的。