1.工厂创建js对象如下
function createObject(){
var object = new Object();
object.name = "lisi";
object.password = "123456";
object.get = function(){
alert(this.name + ", " + this.password);
};
return object;
}
var object1 = createObject();
object1.get();
var object2 = createObject();
object2.get();
当把get方法定义在外时,那get函数对象为所有对象共享
function createObject(){
var object = new Object();
object.name = "lisi";
object.password = "123456";
object.get = get;
return object;
}
function get(){
alert(this.name + ", " + this.password);
}
var object1 = createObject();
object1.get();
var object2 = createObject();
object2.get();
2.构造函数方式
function Person(username,password){
this.username = username;
this.password = password;
this.get = function(){
alert(this.username + ", " + this.password);
}
}
var person = new Person("lisi","123456");
person.get();
3.使用原型方式定义对象,那么生成的所有对象会共享原型中的属性,当一个引用改变了其中的属性也会反应到其他对象中去,但是不能在构造方法中为属性赋初值,如
function Person(){}
Person.prototype.username = new Array();
Person.prototype.password = "123";
Person.prototype.getInfo = function(){
alert(this.username + ", " + this.password);
}
var person1 = new Person();
person1.username.push("zhansan");
person1.username.push("lisi");
person1.password = "456";
person1.getInfo();
var person2 = new Person();
person2.getInfo();
Person对象中的属性username为一个数组,当引用person1改变其值时,引用person2所指的属性username也会发生变化,因为属性username数组是共享的
4.使用原型+构造方法来定义对象,对象之间属性互不干扰,方法共享,如
function Person(){
this.username = new Array();
this.password = "123456";
}
Person.prototype.get = function(){
alert(this.username + ", " + this.password);
}
var p1 = new Person();
p1.username.push("zhansan");
p1.get();
var p2 = new Person();
p2.username.push("lisi");
p2.get();
5.动态原型,在构造函数中通过标志量让所有对象共享一个方法,而每个对象拥有自己的属性,如
function Person(){
this.username = "zhansan";
this.password = "123456";
if(typeof Person.flag == "undefined"){
Person.prototype.getInfo = function(){
alert(this.username + ", " + this.password);
};
Person.flag = true;
}
}
var p1 = new Person();
p1.getInfo();
var p2 = new Person();
p2.getInfo();
分享到:
相关推荐
这个文件可能包含了一些示例代码,用于演示上述的JavaScript对象创建、类定义和继承的实践。通过查看和运行这些代码,你可以更好地理解这些概念并应用到实际项目中。 总结来说,JavaScript对象创建涉及字面量、构造...
js对象创建,事件委托测试,this apply call
javascript对象创建方法总结,通过这些方法的总结,可以对对象有了更深一步的了解,也加深了对对象的巩固认识。
JS对象创建数组.docx
JS对象创建数组.pdf
JavaScript是Web开发中的核心语言,其对象创建是编程过程中不可或缺的一部分。本文将详细介绍JavaScript中九种常见的对象创建方式,帮助开发者更好地理解和应用这些技术。 1. **标准创建对象模式**: 这是最基础的...
在JavaScript编程中,"popup_element.js:小js对象创建模式弹出窗口" 主要涉及到的是使用JavaScript对象创建模式来设计和实现一个弹出窗口的功能。这个弹出窗口可能用于显示通知、用户交互或者提供额外的信息。...
如下所示: 代码如下: var person...上面的例子创建了一个名为person的对象,并为它添加了三个属性(name、age和job)和一个方法(sayName())。其中,sayName()方法用于显示this.name()的值。早期的JavaScript开发人员
在JavaScript中,创建类和对象是面向对象编程的基础。本文将详细介绍几种常见的创建对象的方法,包括它们的特点和优缺点。 5.1 工厂方法 工厂方法是一种创建对象的模式,通过一个函数来创建具有特定属性和行为的...
在JavaScript中,创建对象是编程的基本操作之一,它支持多种方式来实现这一目的。这篇博客“javascript创建对象的方式(二)”可能详细介绍了在JavaScript中除了最基础的字面量语法之外的其他创建对象的方法。这里...
最近一直在看JS高级程序设计这本书,有空来梳理一下几种创建对象的方式。话不多说,直接步入正题。 第一种:Object构造函数创建 var Person = new Object(); Person.name = 'Nike'; Person.age = 29; 这行代码创建...
这是最简单直观的对象创建方式,通过大括号{}定义一个对象,并在其内部用逗号分隔属性和方法。 ```javascript var person = { name: "John", age: 30, sayHello: function() { console.log("Hello, my name ...
1. **对象创建与回收**:DeePool提供API用于创建特定类型的对象池,并负责对象的创建、分配和回收。 2. **自动扩展**:当对象池中的对象被耗尽时,DeePool能自动扩展池的大小,避免因对象不足而影响程序运行。 3. **...
在JavaScript中,对象可以分为系统对象和自定义对象,系统对象可以通过系统构造函数创建,如Array、Date等,而自定义对象则需要自行创建。 JavaScript创建对象的方法主要有以下几种: 一、直接创建 直接创建是通过...
本文将详细介绍三种常见的对象创建方法:工厂模式、构造函数模式以及原型模式,并探讨它们各自的优缺点。 #### 工厂模式 工厂模式是一种常见的设计模式,用于抽象出创建对象的具体过程。在 JavaScript 中,可以...
每个JavaScript对象都有一个`__proto__`属性,指向创建该对象的构造函数的原型。原型对象也是一个对象,可以通过`prototype`属性来访问。我们可以在原型上定义方法,这样所有实例都可以访问这些方法: ```...
主要介绍了JavaScript对象创建模式,结合实例形式总结分析了JavaScript常见的对象创建模式,包括工厂模式、构造函数模式、原型模式、动态原型模式、寄生构造函数模式、稳妥构造函数模式等,需要的朋友可以参考下
除了上述提到的几种模式,JavaScript对象创建还有其他方式,如组合使用构造函数模式和原型模式、动态原型模式以及ES6中引入的class类语法等。这些方式和模式相互补充,为我们提供了灵活多样的对象创建方法,以便在...
在JavaScript编程中,创建对象是一个基础而核心的...`Object.create()`方法的推出,使得JavaScript对象创建和继承机制更加完善和强大,同时也为开发者提供了更高级的抽象手段,帮助编写出更加模块化和可维护的代码。
综上所述,JavaScript提供了多种对象创建模式,每种模式都有其特定的应用场景和优缺点。开发者可以根据具体需求和上下文环境,选择最合适的对象创建模式。在实际开发中,通常推荐使用构造函数和原型模式的结合方式,...