• 你不知道的 JavaScript 系列上( 55) - Object.create()


    [[Prototype]] 机制就是存在于对象中的一个内部连接,它会引用其他对象。这个链接的作用:如果在对象上没有找到需要的属性和方法,引擎就会继续在 [[Prototype]] 关联的对象上进行查找。同理,如果在后者中也没有找到需要的引用就会继续查找它的 [[Prototype]],以此类推。这一系列对象的链接被称为 “原型链”
     
    var foo = {
      something: function() {
        console.log('Tell me something good...');
      }
    }
    
    var bar = Object.create(foo);
    bar.something(); // Tell me something good...

    Object.create() 会创建一个新对象 bar 并把它关联到我们指定的对象 foo ,这样我们就可以充分发挥 [[Prototype]] 机制的威力并且避免不必要的麻烦(比如使用 new 的构造函数调用会生成 .prototype 和 .constructor)

    我们并不需要类来创建两个对象之间的关系,只需要通过委托来关联对象就足够了。而 Object.create(...) 不包含任何类的诡计,所以它可以完美的创建我们想要的关联关系。
    Object.create(...) 是 ES5 中新增的函数,所以在 ES5 之前的环境中,如果要支持这个功能的话就需要使用一段简单的 polyfill 代码,它部分实现了 Object.create(...) 功能
    if(!Object.create){
      Object.create = function(o) {
        function F(){}
        F.prototype = o;
        return new F();
      }
    }
  • 相关阅读:
    CSS布局中——导航是非常常见的
    a标签中的label在IE下触发不了a标签的href链接(label标签——解析)
    table中tr使用toggle不好,选择换一张方式
    css的框架——global.css
    css3属性及事例
    HTML5和CSS3的网站
    利用@media screen实现网页布局的自适应
    关于web中的自适应布局
    css中position:relative的真正理解
    计算时间间隔的js
  • 原文地址:https://www.cnblogs.com/wzndkj/p/12730481.html
Copyright © 2020-2023  润新知