学过JavaScript基础部分后,接下来我们要接触和了解的就是JavaScript高级,这也是JavaScript中最重要的部分。为何说它重要?因为在大厂的面试中手写JavaScript是不可避免的,甚至会问一些关于JavaScript高级的知识点。要想真正搞懂这个东西我们必须从基础部分下手,首先就是JavaScript对象。
什么是对象?
学习了这么多基础内容,那到底什么是对象呢?简单来说,对象就是带有属性和方法的特殊数据类型。例如:String、Date、Array…这些其实就是JavaScript内置的对象.
对象的属性:
知道什么是对象后,我们来看一下对象的属性。简单来说,对象的属性就是对象相关的值。
var message=“hello World!”;
console.log(message.length); //12
执行上述代码后,控制台打印的值为12。我们会发现此处调用了String对象的length属性输出字符串的长度。调用属性的语法:
objectName.propertyName或者objectName[“propertyName”]
对象的方法:
通俗地讲,方法是能够在对象上执行的动作。
var message=“Hello world!”;
console.log(message.toUpperCase()); //HELLO WORLD!
执行上述代码后,控制台打印的值为==“HELLO WORLD!”==。我们会发现此处调用了String对象的toUpperCase方法输出将字符串中的字母全部变为大写。
创建方法的语法:
var methodName=function(){code}
调用方法的语法:
objectName.methodName()
如何创建对象?
重点来了,说了那么多关于对象的东西,那到底怎么创建对象呢?我们一起来看下。
简单来说,创建函数就两种方式:
- 使用var方法创建对象的实例。
在 JavaScript 中,几乎所有的对象都是 Object 类型的实例,它们都会从 Object.prototype (原型)继承属性和方法。
1. 先创建一个空对象后,添加对象属性和方法(Object给定的值为null或者undefined,会返回一个空对象)
var obj1={}; 等同于 var obj1=new Object();
obj1.name=“值是null”;
2. Object给定的值为一个基本类型的值,则会构造其包装类型的对象。
var obj2=new Object(true); 等同于 var obj2= new Boolean(true);
3. 直接创建对象(JavaScript 对象就是一个 name:value 集合)
var obj3={name:“小张”};
- 使用工厂方式(函数构造器)创建对象
1. 先创建一个空的构造函数后,添加对象属性和方法
function Obj4(){};
var obj4=new Obj4();
obj4.name=“使用函数构造器方法一”;
2. 直接通过构造函数创建对象并添加对象属性
function Obj5(name){this.name=name;}
var obj5=new Obj5(“使用函数构造器方法二”);
- 使用原型创建对象
1. 使用静态原型方法(函数原型中添加属性)
function Obj6(){};
Obj6.prototype.name=“原型创建对象方法一”;
var obj6=new Obj6();
2. 使用混合原型方法(函数中添加name属性,函数原型中添加方法)
function Obj7(name){this.name=name};
Obj7.prototype.say=function(){
alert(this.name);
}
var obj7=new Obj7(“原型创建对象方法二”);
3. 使用动态原型方法(函数中添加name属性,加判断条件,此例子条件为函数中的方法是否定义,若没定义则在原型中添加方法,否则方法=ture)
function Obj8(name){
this.name=name;
if(typeof Obj8.say==“undefined”){
Obj8.prototype.say=function(){
console.log(this.name);
}
Obj8.say=true;
}
}
var obj8 =new Obj8(“原型创建对象方法三”);