JavaScript原型模式是指什么?如何实现?
Admin 2021-10-21 群英技术资讯 533 次浏览
JavaScript原型模式是指什么?JavaScript原型模式是JavaScript设计模式中的一种,本文主要介绍JavaScript原型模式的实现,接下来我们就一起来学习一下JavaScript原型模式吧。
原型模式是指原型实例指向创建对象的种类,并通过拷贝这些原型创建新的对象,是一种用来创建对象的模式,也就是创建一个对象作为另一个对象的prototype属性;
prototype警告:学习了解原型模式前需先学习原型、原型链、prototype、__proto__、constructor等知识;
ES5中的API:Object.create(prototype, optionalDescriptorObjects)
Object.create()方法接收两个参数:第一个参数是__proto__对象,第二个是prototiesObject(可选,使用第二个参数可以初始化额外的其他属性,接受字面量对象形式);
var vehiclePrototype = { model:"保时捷", getModel: function () { console.log('车辆模具是:' + this.model); } }; var vehicle = Object.create(vehiclePrototype,{ "model":{ value:"法拉利" } }); vehicle.getModel(); //车辆模具是:法拉利
我们使用Object.create实际上是新建了一个对象vehiclePrototype,并且继承了vehiclePrototype的方法,所以此时vehicle.__proto__ == vehiclePrototype;
第二个参数中初始化了"model"的值,将model的值初始化为了"法拉利",所以此时新创建的对象vehiclePrototype中只有一个model,值为"法拉利";
不用Object.create()实现,用prototype:
var vehiclePrototype = { init: function (carModel) { this.model = carModel || "保时捷"; }, getModel: function () { console.log('车辆模具是:' + this.model); } }; function vehicle(model) { function F() { }; F.prototype = vehiclePrototype; var f = new F(); f.init(model); return f; } var car = vehicle('法拉利'); car.getModel(); // 车辆模具是:法拉利
上述代码中,我们可以看到核心是在vehicle中,我们先创建了一个新的构造函数,然后将该函数的原型指向vehiclePrototype,然后进行实例化该函数,最后继承之后调用prototype上的init方法,最后将执行结果进行返回也是同样可以实现的;
原型模式在JavaScript中无处不在,其他模式中有很多也是基于prototype来实现的,所以好好学习、复习原型和原型链的知识很重要,重点是prototype、__proto__、constructor等关键属性知识点;
关于JavaScript原型模式的内容就介绍到这,感兴趣的朋友可以了解看看,希望大家阅读完这篇文章能有所收获,想要了解更多JavaScript设计模式的实现,可以关注其它的相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在前端开发的时候经常会遇到这样的困惑,设计师给你的设计稿的尺寸和页面的尺寸不一致,导致了页面无法正常显示,下面这篇文章主要给大家介绍了关于一招解决vue页面自适应布局的相关资料,需要的朋友可以参考下
这篇文章主要为大家详细介绍了js实现购物网站放大镜功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
篇文章主要给大家分享的是node.js的cors跨域配置实现的内容,本文有详细的介绍及代码,对大家学习和工作有一定的参考学习价值,因此分享给点家做个参考,需要的朋友可以了解看看。
这篇文章主要为大家详细介绍了JavaScript面向对象实现放大镜案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章给大家分享的是有关JS字符串操作方法的内容,有一些比较实用的小技巧,例如拆分字符串、 JSON格式化和解析、多行字符串和嵌入式表达式和验证字符串数组中是否存在子字符串这些,下文有实现代码,感兴趣的朋友可以了解一下。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008