比如我的原型中有这样一个属性this.removeFlag=true;
//原型创建
;(function(){
function Swin(){
this.removeFlag=true;//该标志为可移动标志
}
window['Swin']=Swin;
})()
//创建对象
var win=new Swin()//这样创建,win对象的removeFlag属性是true,实际上我希望这个对象是不可移动的,所以想针对这个对象把win的removeFlag 设成false,但是这样写:win.removeFlag=false,感觉我的变量都泄露了,我用闭包没有意义了。请问大家在写插件的时候是怎么进行处理的?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
JavaScript 很灵活也很开放,你想要的效果有可能不能完善实现,通过构造函数,可以进行一个简单的闭包封装。这里是否允许移动通过一个参数传递给构造函数。
不过就算这样写,也可以通过更改对象的
isMovable来改变行为:比如首先修改原型中的变量很危险,会影响到其他的实例。如果必须,那就直接修改原型对象上的属性,而不要用this属性去覆盖。
我感觉你可能需要一个静态属性就可以了
不知道你是不是这个意思,