什么是对象?
在JavaScript中,对象是拥有属性和方法的数据。
创建对象的方法
JavaScript自定义对象的常用方式有以下5种:直接创建方式、对象初始化器方式、构造函数方法、prototype原型方式、混合的构造函数/原型方式
直接创建方式:
通式:
var 对象变量名 = new Object();
对象变量名. property1 = value1;
…;
对象变量名. propertyN = valueN;
对象变量名. methodName1 = function([参数列表]){
//函数体
}
…;
对象变量名. methodNameN = function([参数列表]){
//函数体
}
eg:
var student = new Object();
student.name = "jim";
student.dohomework = function(){
console.log(this.name+"正在做作业");
}
student.dohomework();
运行结果:
构造方法式
通式:
var 对象变量名 = {
property1 : value1,
property2 : value2,
…,
propertyN : valueN,
methodName1 : function([parameter_list]){
//函数体
},
…,
methodNameN : function([parameter_list]){
//函数体
}
}
eg:
var student = {
name:"kate",
dohomework:function(){
console.log(this.name+"正在做作业");
},
eat:function(){
console.log(this.name+"正在吃东西");
},
};
student.dohomework();
student.eat();
构造函数式
通式:
function 构造函数([参数列表]){
this.属性 = 属性值;
…
this.属性N = 属性值N;
this.函数1 = function([参数列表]){
//函数体
} ;
…
this.函数N = function([参数列表]){
//函数体
} ;
}
eg:
function Student(name){
this.name = name;
this.doHomework = function(){
console.log(name+"正在吃东西");
}
}
var stu = new Student("kitty");
stu.doHomework();
运行结果:
prototype原型方式
通式:
function 对象构造器( ){
}
对象构造器.prototype.属性名=属性值;
对象构造器.prototype.函数名 = function([参数列表]){
//函数体
}
eg:
function Student(){
}
Student.prototype.name = "lily";
Student.prototype.doHomework= function(){
console.log(this.name+"正在吃东西");
};
var student = new Student();
student.doHomework();
运行结果:
注意:在声明一个新的函数后,该函数(在JavaScript中,函数也是对象)就会拥有一个prototype的属性,通过该属性可以为对象添加新的属性和方法。
混合式
构造函数方式便于动态为属性赋值,但是这种方式将方法也定义在了构造方法体中,使得代码比较杂乱;而原型方式不便于为属性动态赋值,但是这种方式定义的属性和方法实现了分离;所以取长补短——构造函数定义属性,原型方式定义方法
通式:
function 对象构造器([参数列表]){
}
对象构造器.prototype.函数名 = function([参数列表]){
//函数体
eg:
function Student(name){
this.name = name;
}
Student.prototype.doHomework= function(){
console.log(this.name+"正在吃东西");
};
var stu = new Student("jim");
stu.doHomework();
运行结果:
简述java与JavaScript的区别
1、JavaScript的程序代码直接嵌入HTML文件中;而Java程序代码写在Java源文件中;
2、JavaScript是弱类型语言,比如在使用变量前可以不声明变量而直接使用;Java是强制类型语言,比如在使用变量前必须先声明变量;
3、JavaScript的程序代码由客户端浏览器解释、执行;Java程序则必须先编译成class文件再由JVM执行。