真正使用的“ constructor”属性是什么?[重复]

真正使用的“ constructor”属性是什么?[重复],第1张

真正使用的“ constructor”属性是什么?[重复]

我真的看不到为什么该

constructor
属性就是JS中的属性。我偶尔会发现自己使用它来获取IE
<9中对象的原型(例如Event对象)。但是,我确实认为它可以允许某些ppl模仿经典的OO编程构造:

function Foo(){    this.name = 'Foo';}function Bar(){    this.name = 'Bar';}function Foobar(){};Foo.prototype = new Foobar;Foo.prototype.constructor = Foo;Bar.prototype = new Foobar;Bar.prototype.constructor = Bar;var foo = new Foo();var bar = new Bar();//so far the set-upfunction pseudoOverload(obj){    if (!(obj instanceof Foobar))    {        throw new Error 'I only take subclasses of Foobar';    }    if (obj.constructor.name === 'Foo')    {        return new obj.constructor;//reference to constructor is quite handy    }    //do stuff with Bar instance}

因此AFAIK,构造函数属性的 “优点” 是:

  • 从实例轻松实例化新对象
  • 能够 你的对象为某一类的子类,但仍然能够检查哪些特定类型的子类,你处理的。
  • 如您所说:保持整洁。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5017943.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存