object.name = "zhangsan"//每个对象需要写这些语句
object.sayName = function(name){//每个对象需要写这些语句
this.name = name
}
object.sayName("lisi")
alert(object.name)
2、工厂方式创建对象
function createObject() {var object = new Object()
object.username = "zhangsan"
object.password = "123456"
object.get = function(){
alert(this.username + "," + this.password)
}
return object
}
var object1 = createObject()
var object2 = createObject()
object1.get()
object2.get()
// 带参数的构造方法
function createObject(username, password){
var object = new Object()
object.username = username
object.password = password
object.get = function(){//缺点是,多少个对象则方法就有多少个
alert(this.username + ", " + this.password)
}
return object
}
var object1 = createObject("zhangsan",123456)
object1.get()
// 最佳改进方式
function get(){//使该函数被多个对象共享
alert(this.username + ", " + this.password)
}
function createObject(username, password){//创建对象
var object = new Object()
object.username = username
object.password = password
object.get = get
return object
}
var object1 = createObject("zhangsan", "123456")
var object2 = createObject("wangwu", "654321")
object1.get()
object2.get()
3、构造函数方式创建对象
function Person(){//在执行第一行代码欠,js引擎会为我们生成一个对象
this.username = "zhangsan"
this.password = "123"
this.getInfo = function(){
alert(this.username + ", " + this.password)
}
//此处有一个隐藏的return语句,用于将之前生成对象返回。
}
var p1 = new Person()
p1.getInfo()
//带参数
function Person(username, password){
this.username = username
this.password = password
this.getInfo = function(){
alert(this.username + ", " + this.password)
}
}
var p1 = new Person("zhangsan","1234546")
p1.getInfo()
4、原型(“prototype”)方式
function Person(){}Person.prototype.username = "zhangsan"
Person.prototype.password = "123456"
Person.prototype.getInfo = function(){
alert(this.username + ", " + this.password)
}
var person = new Person()
var person2 = new Person()
person.username = "haha"
person.getInfo()
person2.getInfo()
//单纯使用原型方式定义对象无法在构造函数中为属性赋值,只能在对象生成后再去改变属性值
function Person(){}
Person.prototype.username = new Array()
Person.prototype.password = "123456"
Person.prototype.getInfo = function(){
alert(this.username + ", " + this.password)
}
var person = new Person()
var person2 = new Person()
person.username.push("zhangsan")
person.username.push("lisi")
person.password = "321"
person.getInfo()
person2.getInfo()
5、综合方式(原型+构造函数方式搭配)
function Person(){this.username = new Array()//不被多个对象共享
this.password = "123"
}
Person.prototype.getInfo = function()//被多个对象共享
{
alert(this.username + "," + this.password)
}
var p1 = new Person()
var p2 = new Person()
p1.username.push("zhangsan")
p2.username.push("lisi")
p1.getInfo()
p2.getInfo()
6、动态原型方式
function Person(){this.username = "zhangsan"
this.password = "123"
//通过标志量让所有的对象共享方法
if(typeof Person.flag == "undefined"){
alert("prototype")
Person.prototype.getInfo = function() {
alert(this.username + ", " + this.password)
}
Person.flag = true
}
}
var p = new Person()
var p2 = new Person()
p.getInfo()
p2.getInfo()
创建文件一共有3种方法可用于创建一个空文本文件,这种文件有时候也叫做文本流(text stream)。
第一种是使用CreateTextFile方法。代码如下:
var fso, f1
fso = new ActiveXObject("Scripting.FileSystemObject")
f1 = fso.CreateTextFile("c://testfile.txt", true)
第二种是使用OpenTextFile方法,并添加上ForWriting属性,ForWriting的值为2。代码如下:
var fso, ts
var ForWriting= 2
fso = new ActiveXObject("Scripting.FileSystemObject")
ts = fso.OpenTextFile("c://test.txt", ForWriting, true)
第三种是使用OpenAsTextStream方法,同样要设置好ForWriting属性。代码如下:
var fso, f1, ts
var ForWriting = 2
fso = new ActiveXObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c://test1.txt")
f1 = fso.GetFile("c://test1.txt")
ts = f1.OpenAsTextStream(ForWriting, true)
(二)添加数据到文件
当文件被创建后,一般要按照“打开文件->填写数据->关闭文件”的步骤实现添加数据到文件的目的。
打开文件可使用FileSystemObject对象的OpenTextFile方法,或者使用File对象的OpenAsTextStream方法。
填写数据要使用到TextStream对象的Write、WriteLine或者WriteBlankLines方法。在同是实现写入数据的功能下,这3者的区别在于:Write方法不在写入数据末尾添加新换行符,WriteLine方法要在最后添加一个新换行符,而WriteBlankLines则增加一个或者多个空行。
关闭文件可使用TextStream对象的Close方法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)