Javascript JS中的函数定义方法

Javascript JS中的函数定义方法,javascript,function,call,Javascript,Function,Call,这是什么样的函数,我如何称呼它: window.bla = function() {} 它与加载功能相同还是与原型相同?这是将bla属性分配给窗口对象。这不是一个onload函数。它只是将函数绑定到window.bla 可以这样称呼: var Example = function() { return this; }; Example.prototype.bla = function() {}; window.onload = function() { // stuff h

这是什么样的函数,我如何称呼它:

window.bla = function() {}

它与加载功能相同还是与原型相同?

这是将
bla
属性分配给
窗口
对象。这不是一个onload函数。它只是将函数绑定到
window.bla

可以这样称呼:

var Example = function() {
    return this;
};

Example.prototype.bla = function() {};
window.onload = function() {
    // stuff here
};

window.bla()。它将与
bla=function(){}
相同

原型设计如下所示:

var Example = function() {
    return this;
};

Example.prototype.bla = function() {};
window.onload = function() {
    // stuff here
};
加载时,如下所示:

var Example = function() {
    return this;
};

Example.prototype.bla = function() {};
window.onload = function() {
    // stuff here
};

这可以使用
window.bla()
调用。该函数被分配给
窗口
变量的属性。这与将函数声明为
function bla(){}
相同,因为默认情况下,函数是在全局窗口对象上创建的


这与原型设计不同,因为它将函数添加到窗口对象的单个实例,而不是该类型的所有对象。

如果您在全局范围内,则只需执行*即可调用它:

bla();
如果您不是,您还可以:

window.bla();
*您可以在任何范围内执行bla(),但已定义另一个bla变量的范围除外。您可以在此处找到一个快速示例:

我强烈建议:


这种定义函数的方法与原型无关。

你可以在任何范围内
bla()
,只要没有另一个
bla()
的范围更窄。@quentin谢谢,更新了问题以反映你的评论。
function bla(){}
在另一个函数中。默认情况下,函数不是在全局窗口对象上创建的,它们的作用域是限定的,并且类似于将其声明为
var blah=function(){}
,除非某个地方有
var bla
。如果将bla粘贴到
var bla
下面的某个作用域中,则是的,否则它是完全相同的。