为了账号安全,请及时绑定邮箱和手机立即绑定

可不可以直接把alert等方法直接写在构造函数里?

为什么配置写在构造函数Window里,而alert等方法写在Window的Prototype里?可不可以直接把alert等方法直接写在构造函数里?

正在回答

3 回答

直接把alert等方法直接写在构造函数里的话,每个实例都需要重新创建构造函数里面的方法,而且每个实例里面的方法都不相等,这也算是构造函数模式创建对象的缺点


1 回复 有任何疑惑可以回复我~

不知道对不对=  =

用new生成实例对象是无法共享属性和方法的

var w1=new window();

var w2=new window();

他们的属性和方法是独立的 修改其中一个,不会影响到另一个  是各自本地的属性.所以写在构造函数里是对资源的浪费

而 window.prototype中放入的都是可共享的属性和方法 (原型中的) 当修改w1.prototype.属性或方法 时,w2.prototype.属性或方法也会改变

结论 : 如果写在构造函数中每次创建实例都会生成新的,实例自身的window().alert()  浪费资源 且 无法共享


1 回复 有任何疑惑可以回复我~

如果只是把alter的函数体写在构造函数里,是可以的,只是调用方式不同了,我反而觉得会更方便一点:w.Window(cfg); 少一个alter函数调用。因为你要new Window就是为了alert嘛!

但是confirm和prompt是不能定义在构造函数里的,这样的话在构造函数外部无法调用。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
阿当大话西游之WEB组件
  • 参与学习       26371    人
  • 解答问题       275    个

衡量攻城师能力是否成熟的重要指标,本课程会以弹窗组件为例

进入课程

可不可以直接把alert等方法直接写在构造函数里?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信