万事万物之对象大合集

快过年了吧,家里人又在吹你找对象了吧。不如在下面这几个对象中选一个吧~~

一、对象是什么?

对象(object)是一件事、一个实体、一个名词,可以获得的东西,可以想象有自己的标识的任何东西。

对象是类的实例化。

对象就是可以拥有属性和方法的一个集合。

(1)对象是类的实例化——类

  • 具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。
  • 类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
  • 类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

(2) 对象就是可以拥有属性和方法的一个集合

  • 士兵就是一个对象,它拥有身高体重的属性,保家卫国,吃饭睡觉的动作方法。

 二、面向对象是什么?

面向对象可以把程序中的关键模块都视为对象,而模块拥有属性及方法。

(1)对象的组成

  • 方法   函数:过程、动态的
  • 属性   变量:状态、静态的

(2)面向对象特点

  • 抽象:抽指把核心的东西抽出来,把与我们要解决的问题有关的东西拿出来摆在面前 。
  • 封装:让使用对象的人不考虑内部实现,只考虑功能使用  把内部的代码保护起来,只留出一些个api接口供用户使用。
  • 继承:就是为了代码的复用,从父类上继承出一些方法和属性,子类也有自己的一些属性 。
  • 多态:实际上是不同对象作用与同一操作产生不同的效果。多态的思想实际上是把“想做什么”和“谁去做“分开。

三、JavaScript的本地对象( native object )有哪些 ?

本地对象:ObjectString、ArrayDateNumberRegExpFunctionBooleanError等。

由 ECMAScript 实现提供并独立于宿主环境的任何对象。

本地对象可以理解为 ECMA-262 定义的类(引用类型)。

特点:本地对象可以new实例化。

四、JavaScript的内置对象( built-in object )有哪些 ?

内置对象: Object,Math,String,Array,Number,Function,Boolean,JSON 等 其中Object是所有对象的基类,采用了原型继承方式.。

由 ECMAScript 实现提供并独立于宿主环境的,在程序开始执行就出现的对象。

所有内置对象都是本地对象的子集。

ECMAScript5中增添了JSON这个存在于全局的内置对象。

包含:GlobalMath

特点:内置对象不可以实例化。

五、JavaScript的宿主对象 ( host object )有哪些 ?

宿主对象:DOM 、BOM和自定义对象。

由 ECMAScript 实现的宿主环境(如某浏览器)提供的对象(如由浏览器提供的 Window 和 Document),包含两大类,一个是宿主提供,一个是自定义类对象。

所有非本地对象都属于宿主对象。

对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,浏览器对象有很多,如WindowDocument等。

 六、Javascript创建对象的几种方式?

第一种:对象字面量

代码如下:

var o = {
  name: 'zs',
  age: 18,
  sex: true,
  sayHi: function () {
    console.log(this.name);
  }
}; 

第二种:new Object()创建对象

代码如下

var person = new Object();
  person.name = 'lisi';
  person.age = 35;
  person.job = 'actor';
  person.sayHi = function(){
  console.log('Hello,everyBody');
}

第三种:寄生构造函数模式:

   ——其实是工厂模式的变种,只不过是放在其他构造函数中创建对象

  代码如下:

function createPerson(name, age, job) {
  var person = new Object();
  person.name = name;
  person.age = age;
  person.job = job;
  person.sayHi = function(){
    console.log('Hello,everyBody');
  }
  return person;
}
var p1 = createPerson('张三', 22, 'actor');

第四种:自定义构造函数

  代码如下:

function Person(name,age,job){
  this.name = name;
  this.age = age;
  this.job = job;
  this.sayHi = function(){
    console.log('Hello,everyBody');
  }
}
var p1 = new Person('张三', 22, 'actor');

第五种:Object.create()——ES5 ie9+

七、JavaScript函数对象?

1.所有的构造函数都有一个prototype属性, 所有prototype属性都指向自己的原型对象。
2,所有的原型对象都有一个constructor属性, 所有constructor属性都指向自己的构造函数。
3.所有函数都是Function构造函数的实例对象。
4.所有函数都是对象, 包括Function构造函数。
5.所有对象都有__proto__属性。
6.普通对象的__proto__属性指向创建它的那个构造函数对应的"原型对象"。
7.所有对象的__proto__属性最终都会指向"Object原型对象"。
8."Object原型对象"的__proto__属性指向NULL。

猜你喜欢

转载自blog.csdn.net/m0_60263299/article/details/122491007