首页 > 基础资料 博客日记
JavaScript 中创建对象的方式( 9种 )
2024-04-22 23:00:08基础资料围观508次
文章JavaScript 中创建对象的方式( 9种 )分享给大家,欢迎收藏Java资料网,专注分享技术知识
还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。
No. | 内容链接 |
---|---|
1 | Openlayers 【入门教程】 - 【源代码+示例300+】 |
2 | Leaflet 【入门教程】 - 【源代码+图文示例 150+】 |
3 | Cesium 【入门教程】 - 【源代码+图文示例200+】 |
4 | MapboxGL【入门教程】 - 【源代码+图文示例150+】 |
5 | 前端就业宝典 【面试题+详细答案 1000+】 |
文章目录
JavaScript 中创建对象的方式多种多样,以下是几种常见的创建对象的方法:
-
工厂模式:
function createPerson(name, age) { var obj = {}; obj.name = name; obj.age = age; obj.sayHello = function() { console.log("Hello, I'm " + this.name); }; return obj; } var person = createPerson("John", 30);
-
构造函数模式:
function Person(name, age) { this.name = name; this.age = age; this.sayHello = function() { console.log("Hello, I'm " + this.name); }; } var person = new Person("John", 30);
-
对象字面量(或称“对象直接量”):
var person = { name: "John", age: 30, sayHello: function() { console.log("Hello, I'm " + this.name); } };
-
原型模式:
function Person() {} Person.prototype.name = "John"; Person.prototype.age = 30; Person.prototype.sayHello = function() { console.log("Hello, I'm " + this.name); }; var person = new Person();
-
混合构造函数和原型模式(组合构造函数模式和原型模式的优点):
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHello = function() { console.log("Hello, I'm " + this.name); }; var person = new Person("John", 30);
-
动态原型模式:
function Person(name, age) { this.name = name; this.age = age; if (typeof this.sayHello !== 'function') { // 只有当sayHello未定义时才添加 Person.prototype.sayHello = function() { console.log("Hello, I'm " + this.name); }; } } var person = new Person("John", 30);
-
寄生构造函数模式:
function createPerson(name, age) { var obj = new Object(); obj.name = name; obj.age = age; obj.sayHello = function() { console.log("Hello, I'm " + this.name); }; return obj; } var person = createPerson("John", 30);
-
稳妥构造函数模式(主要用于特殊情况,对象没有公共属性,只提供方法):
function Person(name, age) { var that = new Object(); var privateName = name; var privateAge = age; that.getDetails = function() { return privateName + ", " + privateAge; }; return that; } var person = Person("John", 30);
-
使用类来创建对象
随着ES6引入类(Class)语法,还可以使用类来创建对象,虽然在底层仍然是基于原型机制工作的:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log("Hello, I'm " + this.name);
}
}
var person = new Person("John", 30);
文章来源:https://blog.csdn.net/cuclife/article/details/137273824
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?