javascript从链函数获取属性
我需要做一个像“device.browser.scroll().top”这样的函数。我如何让一个函数做到这一点,并从和对象中获取值,我的代码总是说未定义javascript从链函数获取属性,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我需要做一个像“device.browser.scroll().top”这样的函数。我如何让一个函数做到这一点,并从和对象中获取值,我的代码总是说未定义 let device={}; device.browser={}; device.browser.scroll=(el=窗口)=>{ 返回{ 顶部:el.pageXOffset | | el.scrollLeft, 左:el.pageYOffset | | el.scrollTop, } } console.log('scrollTop',d
let device={};
device.browser={};
device.browser.scroll=(el=窗口)=>{
返回{
顶部:el.pageXOffset | | el.scrollLeft,
左:el.pageYOffset | | el.scrollTop,
}
}
console.log('scrollTop',device.browser.scroll().top)代码>
html,正文{
身高:100%;
}
.包装部{
高度:100vh;
}
.wrapper分区:第n个子项(1){
背景:红色;
}
.wrapper分区:第n个子项(2){
背景:绿色;
}
.wrapper分区:第n个子项(3){
背景:蓝色
}
问题在于,如果左侧为假,而0为假,尽管包含所需的数字信息,|
将计算到右侧。您可以改为使用?
,如果左侧是未定义的
或空的
,则只对右侧求值:
return {
top: el.pageXOffset ?? el.scrollLeft,
Left: el.pageYOffset ?? el.scrollTop,
}
let device={};
device.browser={};
device.browser.scroll=(el=窗口)=>{
返回{
顶部:el.pageXOffset??el.scrollLeft,
左:el.pageYOffset??el.scrollTop,
}
}
console.log('scrollTop',device.browser.scroll().top)代码>
html,正文{
身高:100%;
}
.包装部{
高度:100vh;
}
.wrapper分区:第n个子项(1){
背景:红色;
}
.wrapper分区:第n个子项(2){
背景:绿色;
}
.wrapper分区:第n个子项(3){
背景:蓝色
}
为什么top值总是0?在这些代码段中,它是0,但这只是因为脚本在pageload上运行,而且在pageload上,页面根本没有滚动过。如果在pageload之后以及在用户垂直/水平滚动之后运行它,您将看到非0值。我尝试了方向更改事件,但在向下滚动页面后,它仍然为零