本篇文章给大家带来的内容是关于JavaScript中Object.create()的用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
Object.create(null) 创建的对象是一个空对象,在该对象上没有继承 Object.prototype 原型链上的属性或者方法
例如:toString(), hasOwnProperty()等方法
参数 说明obj创建对象的原型,表示要继承的对象propertiesObject(可选 )也是一个对象,用于对新创建的对象进行初始化
我们来看看底层实现
立即学习“Java免费学习笔记(深入)”;
Object.create = function (o) { var F = function () {}; F.prototype = o; return new F(); };
登录后复制
下面我们来看具体应用:
//创建一个Obj对象 var Obj ={ name:'mini', age:3, show:function () { console.log(this.name +" is " +this.age); } } //MyObj 继承obj, prototype指向Obj var MyObj = Object.create(Obj,{ like:{ value:"fish", // 初始化赋值 writable:true, // 是否是可改写的 configurable:true, // 是否能够删除,是否能够被修改 enumerable:true //是否可以用for in 进行枚举 }, hate:{ configurable:true, get:function () { console.log(111); return "mouse" }, // get对象hate属性时触发的方法 set:function (value) { // set对象hate属性时触发的方法 console.log(value,2222); return value; } } });
登录后复制划重点:这里get和set 方法似乎还蕴含更大的潜力 。我们可以利用它们去实现数据的过滤和数据的绑定 。实现一些简单的mvvm的效果
Object.create继承的应用:
var A = function () { }; A.prototype.sayName=function () { console.log('a'); } // B的实例继承了A的属性 var B = function () { }; B.prototype = Object.create(A.prototype); var b = new B(); b.sayName(); // a
登录后复制
划重点:相对于构造函数的继承Object.create继承实现了将A,B的原型完美分隔 。双方不会互相影响。这是Object.create亮点所在
以上就是JavaScript中Object.create()的用法介绍的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2735600.html