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();
分享到:
相关推荐
js对象创建,事件委托测试,this apply call
文章《javascript对象创建--类、继承》源码
javascript对象创建方法总结,通过这些方法的总结,可以对对象有了更深一步的了解,也加深了对对象的巩固认识。
JavaScript对象创建的九种方式
本文详细讲解如何在js中创建类和对象,包括各种创建对象的方法,以及各种方法的优略
最近一直在看JS高级程序设计这本书,有空来梳理一下几种创建对象的方式。话不多说,直接步入正题。 第一种:Object构造函数创建 var Person = new Object(); Person.name = 'Nike'; Person.age = 29; 这行代码创建...
本文实例总结了JavaScript对象创建模式。分享给大家供大家参考,具体如下: 在JavaScript中创建对象是很容易的,可以使用对象字面量或者构造函数。常用的创建对象的模式有以下几种: 一. 工厂模式 工厂模式抽象了...
popup_element.js 小js对象创建模式弹出窗口
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式).docx
NULL 博文链接:https://redhacker.iteye.com/blog/1457293
在Webpack构建过程中,从JavaScript对象创建json文件。 安装 npm i -D emit-json-file-webpack-plugin 用法 new EmitJsonFileWebpackPlugin([files]) 文件看起来像: { path: 'filePath', content: 'object' } ...
本文将用实例讲解一下JavaScript对象创建及继承原理:JavaScript中的继承是使用原型链的机制,对象创建使用Function构造器,感兴趣的朋友可以详细了解下本文,或许可以帮助到你
客体Node.js 库,用于从您的 Node.js 对象创建 CLI(命令行界面)实用程序。 自动地。 可以从命令行调用对象的方法,传递所需的参数。 CLI 帮助会自动为您生成。包装对象要求目前,您的对象应该在完成后回调。 回调...
如下所示: 代码如下: var person...上面的例子创建了一个名为person的对象,并为它添加了三个属性(name、age和job)和一个方法(sayName())。其中,sayName()方法用于显示this.name()的值。早期的JavaScript开发人员
从 javascript 对象创建通用的 sql 插入查询 安装 npm install insert-sql-generator 例子 简单案例 var insertQuery = require('insert-sql-generator') var object = { a: 1, b: 'foo', c: true } var ...
javascript面向对象创建对象的方式小结.docx
在上篇文章给大家介绍了javascript面向对象基础,本篇文章继续深入学习javascript面向对象,JS的语法非常灵活,简单的对象创建就有好几种不同的方法。这些过于灵活的地方有时候确实很让人迷惑,那么今天我们就来梳理...
主要介绍了一种新的javascript对象创建方式Object.create(),感兴趣的小伙伴们可以参考一下