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