Javascript中普通函数声明和内部返回块函数声明的区别
difference between normal function declaration and inside return block function declaration in Javascript
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");
如果你从函数返回一个对象,然后用new
作为构造函数调用它,函数的原始this
将被丢弃并被忽略并永远丢失。换句话说,this.firstName
的值在这个世界上再也无法获得。你想通过返回对象字面量来完成什么?
JavaScript中正常函数声明和内部返回块函数声明的区别是什么?
不同之处在于(假设您指的是method声明)普通声明所做的是您通常想象的事情。
this
的原始值,而是用单个方法返回那个对象,这可能不是你想要的。
相关文章:
- 直接在函数声明上使用function.prototype.bind
- 可以Resharper在我的javascript函数声明中添加分号
- 此行是否包含函数声明
- 函数声明与函数表达式之间的性能差异
- 为什么在javascript函数声明中使用逻辑运算符
- 函数声明未定义-原因
- JavaScript执行从函数声明开始,而不是从$(document).ready()开始
- 杰辛特 |传递默认设置 |函数声明和“this”
- 未知的 JavaScript 函数声明模式
- JavaScript 中的函数声明
- 在函数声明而不是运行时分析所有变量
- 命名函数声明有什么好处吗
- 将一个简单的函数声明形成JavaScript中的闭包
- 返回语句后的函数声明全局变量不会被覆盖
- (this)在函数声明之后
- 为什么使用 ||在变量函数声明中
- 为什么要将函数声明分配给命名变量
- 具有相同参数的 Javascript 函数声明
- 从性能的角度来看,函数声明与表达式
- 为什么 Mozilla Javascript 调试器的断点会捕捉到函数声明