JavaScript-声明具有功能的函数
我是JS新手,学习了一些web应用程序中的代码。有谁能告诉我这两种声明之间的区别,它们都是具有特征函数的对象吗?什么时候使用哪个声明 a) 自我唤起功能:JavaScript-声明具有功能的函数,javascript,function,object,Javascript,Function,Object,我是JS新手,学习了一些web应用程序中的代码。有谁能告诉我这两种声明之间的区别,它们都是具有特征函数的对象吗?什么时候使用哪个声明 a) 自我唤起功能: namespace.myCanvas= (function(){ var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); var foo = function(...){.
namespace.myCanvas= (function(){
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var foo = function(...){...}
return {
canvas: canvas,
context: context,
foo: foo
}
})();
b) 我想这是一个可以给出对象信息的函数:
function makeRectangle(xPos, yPos, w, h) {
this.xPos= xPos;
this.yPos= yPos;
this.w= w;
this.h= h;
this.make= function() {
ctx.fillStyle = this.fill;
ctx.fillRect(this.xPos, this.yPos, this.w, this.h);
}
}
当你这样做的时候:
(function(){
return {}
})();
您正在创建一个函数,基本上是一个函数,它是通过()创建并执行的。
好的,那么您的A函数是自调用的,并返回一个包含一些其他对象的对象。因此,变量namespace.myCanvas将是函数返回的对象
而B函数是a,它(与new关键字一起使用时)将返回一个具有xPos、yPos、w和h属性和make方法的对象
希望能有帮助
编辑
如果您对函数声明和函数表达式的差异有疑问,请重复非常感谢您的解释和链接!!!@你帮了我很多忙!