2

1.对象:Javascript中所有事物都是对象,如:数值、数组、字符串、函数... 还可以自定义对象

对象的分类:
    
    (1)内部对象:Boolean类、Number类、字符串string、Date类
        【Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、String以及各种错误类对象,包括Error、EvalError、RangeError、ReferenceError、SyntaxError和TypeError】
    其中Global和Math这两个对象又被称为“内置对象”,这两个对象在脚本程序初始化时被创建,不必实例化这两个对象。
    
    (2)宿主对象:
         就是执行JS脚本的环境提供的对象。对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,所以又称为浏览器对象,如IE、Firefox等浏览器提供的对象。不同的浏览器提供的宿主对象可能不同,即使提供的对象相同,其实现方式也大相径庭!这会带来浏览器兼容问题,增加开发难度。
    浏览器对象有很多,如Window和Document等等。
    
    (3)自定义对象:即程序员用代码自己定义的
    

2.对象的属性:

属性是与对象相关的值。

访问对象属性的语法是:objectName.propertyName

example:
    var obj='hello everyone!';
    console.log(obj.length);
    打印结果:15

3.访问对象的方法:


方法是能够在对象上执行的动作
语法:objectName.methodName();
example:
    var obj='hello everyone!';
    obj.toUpperCase();
    打印结果:HELLO EVERYONE

4.对象的多种创建方式:

图片描述

1.使用字面量直接创建

example:
var obj={
 key:value,
 key:value,
 method:function(){
  alert('I am Method');
 }
}

用法:obj.method();

2.Object构造函数创建

example:
 var obj= new Object();
 obj.name='lucky',
 obj.age='18'  

用法:obj();

3.使用工厂方式创建

example:
 function object(name, age, Introduction) {
  var o = new Object(); //创建对象
  o.name = 'lucky',
  o.age = '18',
  o.Introduction = function() {
   alert(o.name, o.age);
 }
 return o;
}

4.使用构造函数创建

example:
 function Introduction(name,age,Introduction){
  this.name=name;
  this.age=age;
  this.Introduction=function(){
   alert('My name is' + this.name + 'My age' + this.age);
  }
}
用法: var s1=new Introduction('Lili','16');
var s2=new Introduction('Meimei','17');
    

5.使用原型创建

example:
 function Proto(){}
  Proto.prototype.name='Lili';
  Proto.prototype.age='12';
  Proto.prototype.Introducte=function(){
   alert(this.name);
 };
    
 用法: var s3 = new Proto();

6.组合使用构造函数和原型模式

  
example:
 function Person(name,age, obj) {
  this.name = name;
  this.age = age;
  this.obj = obj;
 }

Person.prototype = {
 constructor: Person,
 Introduction: function() {
 alert(this.name);
 }
}
用法:var Limei = new Person('Limei','20');

图片描述


王瑞芳
52 声望4 粉丝

前端工程师