Javascript var onload是否意味着它应该在加载页面时运行

Javascript var onload是否意味着它应该在加载页面时运行,javascript,Javascript,//test.js// var testObj = {}; testObj.init = function(){ console.log('google'); } var onload = testObj.init; ///它是什么意思,它是指在加载脚本时执行它还是什么,我只是无法理解它,因为它没有在Google Chrome插件下进入控制台…没有记录任何内容,因为您只是将onload设置为指向函数testObj.init的指针,该函数只获取函数的代码

//test.js//

    var testObj = {};
    testObj.init = function(){
        console.log('google');
    }

var onload = testObj.init;

///它是什么意思,它是指在加载脚本时执行它还是什么,我只是无法理解它,因为它没有在Google Chrome插件下进入控制台…

没有记录任何内容,因为您只是将
onload
设置为指向函数
testObj.init
的指针,该函数只获取函数的代码。要实际运行它,必须调用
testObj.init()



更多关于onload

onload
是可以设置为运行javascript的HTML元素的属性。例如:

<html>…
… <body onload="testObj.init()"> …
…</html>

没有记录任何内容,因为您只是将
onload
设置为指向函数
testObj.init
的指针,该函数只获取函数的代码。要实际运行它,必须调用
testObj.init()



更多关于onload

onload
是可以设置为运行javascript的HTML元素的属性。例如:

<html>…
… <body onload="testObj.init()"> …
…</html>

这只是意味着变量onload现在指向

function(){
    console.log('google');
}

onload只是一个局部变量的名称。

它只是意味着您的变量onload现在指向

function(){
    console.log('google');
}

onload在这里只是局部变量的名称。

在代码中,
onload
只是局部变量的名称。
var
关键字声明局部变量。您正在将
onload
的值设置为
testObj.init
,这是一个将“google”打印到控制台的函数

要使其在页面加载时运行函数,请将
window.onload
设置为函数的值

window.onload = testObj.init;

或者,更好的方法是,使用将“onload”事件附加到
窗口
对象。(为了简化此过程,请使用JavaScript库,例如,但我建议您首先了解它的工作原理。)

在您的代码中,
onload
只是局部变量的名称。
var
关键字声明局部变量。您正在将
onload
的值设置为
testObj.init
,这是一个将“google”打印到控制台的函数

要使其在页面加载时运行函数,请将
window.onload
设置为函数的值

window.onload = testObj.init;

或者,更好的方法是,使用将“onload”事件附加到
窗口
对象。(为了简化此过程,请使用JavaScript库,例如,但我建议您首先了解它的工作原理。)

这意味着变量onload是对函数testObj.init的引用
onload()
将执行函数并将“google”输出到控制台。

这意味着变量onload是对函数testObj.init的引用
onload()
将执行函数并将“google”输出到控制台。

否,这只意味着您将其分配给名为
onload
的变量

如果变量名与
窗口
对象的
onload
属性冲突,根据代码的范围,它可能实际工作。在这种情况下,将不会创建变量,而是使用现有属性。但不应依赖此行为,应始终将其指定为对象的属性:

window.onload = testObj.init;

不,这只意味着您将其分配给名为
onload
的变量

如果变量名与
窗口
对象的
onload
属性冲突,根据代码的范围,它可能实际工作。在这种情况下,将不会创建变量,而是使用现有属性。但不应依赖此行为,应始终将其指定为对象的属性:

window.onload = testObj.init;

想象一下给你的狗取两个名字:

var spot = new Dog();
var comeHereSpot = function ()  { return spot; }    
var comeHereBoy = comeHereSpot;

无论你叫“Comehere Spot”还是“Comehere Boy”,同一只狗都会跑过来。

想象一下,就像给你的狗取两个名字一样:

var spot = new Dog();
var comeHereSpot = function ()  { return spot; }    
var comeHereBoy = comeHereSpot;


无论您是呼叫“Comehere Spot”还是“Comehere Boy”都会有同一只狗跑过来。

很抱歉问了一个愚蠢的问题,但我实在想不通您是否正在尝试执行页面加载功能并需要帮助,或者您找到了这段代码并试图找出它想要实现的目标了吗?第二段代码确实试图让自己绕过JSJAC库只需使用var onload=testObj.init();很抱歉问了一个愚蠢的问题,但我实在想不起来你是想在页面加载时执行一个函数并需要帮助,还是找到了这段代码并试图弄清楚它想要完成什么?第二段确实是想让我绕过JSJAC库。=)只需使用var onload=testObj.init();是的,在你的例子中,“onload”是一个独立变量。你所说的一切都是真的,但你没有回答OP的问题。感谢你指出musicfreak,在那里我一时失去了思路……呵呵,是的,“onload”在你的例子中是一个独立变量。你所说的一切都是真的,但是你没有回答OP的问题。谢谢你指出musicfreak,我在那里一时失去了思路…hehethanks,这只是一个oxjs库,我一直在使用,没有太多的文档,示例也不起作用=(这只会在没有
var
关键字的情况下起作用。
var
声明了一个局部变量。如果代码只是
onload=testObj.init
那么它可能会起作用。事实上,对于var,这里有一个代码部分“var onload=DemoApp.JSJaC.init;”我只是有点困惑,无论如何,多亏了你的帮助ll@musicfreak:使用
onload=fn;
可能很有诱惑力,但应该是…@CMS:我知道,我不是说你应该这样做,我只是在反驳@Guffa的说法。谢谢,这只是我一直使用的一个oxjs库,没有太多文档,示例也不适用king….=(只有在没有
var
关键字的情况下才能工作。
var
声明了一个局部变量。如果代码只是
onload=testObj.init
,那么它可能会工作。事实上,它是与var一起工作的,