原型取决于全局变量(如果该变量发生变化怎么办)
Prototype depending on global variable (what if that variable changes)
我正在构建一个JS原型函数,它使用的值之一基于名为"viewport"的全局对象。但是,如果此对象的值将更改;原型的值将不再准确。
确保值始终相等的最佳或最有效的方法是什么?
获取视口值:
var viewport = {
width: undefined
}
function initViewport($window){
viewport.width = $window.width();
}
$(document).ready(function(){
initViewport($(window));
});
$(window).resize(function(){
initViewport($(window));
});
创建原型:
// Slider it's width is depending the viewport width
function Slider(){
this.width = viewport.width;
}
Slider.prototype.slide = function(){
console.log(this.width);
}
var slider = new Slider();
slider.slide();
提前感谢!
您可以像这样添加回调:
var viewport = {
width: undefined,
onChange: []
}
function initViewport($window){
viewport.width = $window.width();
viewport.onChange.forEach(function(fn) {
fn(viewport.width);
});
}
并在滑块中:
function Slider(){
this.width = viewport.width;
viewport.onChange.push(function(newvalue) {
this.width = newvalue;
}.bind(this));
}
相关文章:
- 单击页面上的链接后高度发生变化
- React redux初始化功能,无论状态变化如何
- 角度ng变化或ng点击选择can'不起作用
- 每个选择器的Jquery css颜色都在变化,但字体大小却没有变化
- JS幻灯片与CSS背景颜色变化
- 重新加载页面时Javascript变量发生变化
- 如何获得Bootstrap Datepicker的年和月,因为它在变化
- 如何用jquery替换字符串中可能变化的字符
- 检测数据的变化
- 如何检测和打印变化变量LESS
- 当文本不断变化时,如何避免在按钮内移动文本
- 当数据库中的某些内容发生变化时调用HTTP方法Meteor.js
- jQuery将侦听器的大小调整为只触发宽度的变化
- 根据元素高度和宽度的百分比变化增加或减少字体大小
- 调用$.each()函数时上下文发生变化
- 创建一个不断变化的谷歌涂鸦风格的标题
- Javascript对象颜色动态变化
- 如果在编辑中下拉值发生变化,如何执行功能
- 原型取决于全局变量(如果该变量发生变化怎么办)
- 如果变量在settimeout之后但在它真正运行之前发生了变化怎么办?