面向对象的声明方式

1.最早的声明方式

let person=new Objiect{

person.name="张山";

person.age=18;

person.say=function(){

console.log("my name is"+person.name+"年龄是"+person.age);

          }

}

console.log(person.name);

person.say();

这种方式的缺点是没有对函数进行封装,每次创建对象都会书写大量的代码,现在已经废弃了

2.字面量创建对象(json),使用一对大括弧

let person={

name:"张三",

age:18

}

这种方式书写起来更加简便,但是本质上和Object是类似的,没有进行封装。但是这种方法不仅没有被废弃,反而现在非常的火,基本快要替代XML

使用这种方式创建的对象有一个名字叫做JSON,全称JavaScript Object Notation,翻译成中文是JavaScript对象交换格式,这个JSON主要是做数据的传输。

XML也是用于数据的传输,但是XML的解析非常的麻烦,有很多无用标签,所以已经逐渐被JSON所替代

3.自定义构造函数创建对象

let Person=function(name,age){

  this.name=name;

  this.age=age;

  this.say=function(){

    console.log(this.name);

  }

}

let zhangsan=new Person("张三",18);

console.log(zhangsan.age);

zhangsan.say();

使用自定义构造函数以后,实例化对象不需要再一次书写name,age等属性,只需要通过一个关键字new实例化出来一个就可以了。这种写法更加接近其他的高级语言。

但是这种方式还是有一个缺点,那就是方法对于每个对象来说是公用的。所以有一份就可以了,不需要每个对象里面都有一份这个相同的方法

4.构造函数+原型方法

let Person=function(name,age){

  this.name=name;

  this.age=age;

}

Person.prototype.say=function(){

    console.log(this.name);

  }

let zhangsan=new Person("张三",18);

console.log(zhangsan.age);

zhangsan.say();

这种方式的核心理念就是将共同的方法部分写在了原型对象上面。之后实例化出来的每个对象都共享这个原型方法

5.ES6中创建对象的方法(类)

class Person{

//构造器函数,由于初始化函数

  constructor(name ,age){

    this.name=name;

    this.age=age;

  }

  //原型方法

  say(){

  console.log(this.name)

  }

}

let zhangsan=new Person("张三",18);

console.log(zhangsan.age);

zhangsan.say();

时间: 2024-08-29 21:05:37

面向对象的声明方式的相关文章

第163天:js面向对象-对象创建方式总结

面向对象-对象创建方式总结 1. 创建对象的方式,json方式 推荐使用的场合: 作为函数的参数,临时只用一次的场景.比如设置函数原型对象. 1 var obj = {}; 2 //对象有自己的 属性 和 行为 3 // 属性比如: 年龄.姓名.性别 4 // 行为: 吃饭.睡觉.走路.讲课等... 动作 5 var obj2 = { 6 name: 'laoma', 7 age: 18, 8 sayHi: function(){ 9 console.log( name + 'say hi' )

javascript函数声明方式

javascript中函数的声明有三种方式: 最常见的函数声明: fun();//可以调用,因为这种声明方式会被浏览器优先加载. function fun() { alert("声明式的函数声明"); } 函数表达式的声明: var fun2=function() { alert("表达式的函数声明"); } fun2();//这种方式的声明,必须写在函数声明之后,因为这种声明方式不会被浏览器优先加载. 通过对象的函数声明: var fun2 = Function(

iOS:不同属性声明方式的解析

代码: /* 属性声明方式说明: ----------------------- 1 @interface ... { id name } @end 这样声明的属性其实可以认为是private属性,因为它只能在方法里通过name引用,外部无法通过“object.name”的方式进行引用 (内部也不能通过self引用) ---------------------- 2 @interface ... @property id name @end 这样声明的属性可以认为是public属性,内部通过“s

【转载】Java基础之String中equals,声明方式,等大总结

转载请注明出处:http://blog.csdn.net/dmk877/article/details/49420141 无论你是一个编程新手还是老手,提到String你肯定感觉特别熟悉,因为String类我们在学习java基础的时候就已经学过,但是String类型有我们想象的那么简单吗?其实不然,String类型的知识点还是比较多的.今天就和大家来一起讨论一下,关于String的一些容易让人疑惑的地方,废话不多说进入正题...如有谬误请批评指正,如果有疑问请留言.我会在第一时间修改或回答 通过

函数——函数的两种声明方式:函数声明&函数表达式的区别(未完待续。。。)

一.函数声明中函数名是必须的:函数表达式中则是可选的 //函数声明 function sum(a, b) { return a + b; } alert(sum(1, 2)); //函数表达式 /* var s = function sum(a, b) { return a + b; } alert(s(1, 2)); */ var s = function(a, b) { return a + b; } alert(s(1, 2)); //以上两种都可以 二.用函数声明定义的函数,函数可以在函

C#数组的声明方式

C#数组的五种声明方式 一.声明一个未经初始化的数组引用,以后可以把这引用初使化为一个数组实例 int[] intArray; intArray = new int[10]; 注:数组的引用必须以相同或相关类型实例化,数组初使化默认值,值类型为0,引用类型为null 二.声明一个数组引用并对他进行初使化,该数组引用被立即赋予一个数组的新实例. int[] intArray = new int[10]; 三.声明一个数组,初使化数组引用,并给数组元素赋值 int[] intArray = new

HTML5 mui框架(声明方式)(折叠面板)(数字角标)(按钮)

声明方式(HBuilder会自动生成) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <

ES6学习笔记二 新的声明方式和变量的解构赋值!

新的声明方式 在ES5的时候,我们只有一个声明方式,var!但是在es6中,声明进行了扩展,我们加上ES5的var的申明方式,我们有了三种声明方式: var:它是variable的简写,可以理解成变量的意思 let:它在英文中是让的意思,也可以理解成一种申明方式 const:它在英文中是常量的意思,在ES6中用来声明常量,常量可以理解成不变的量=>这里的不变不是值得不变,是内存地址的指针不变!!! var 声明: var在ES中是用来升级成全局变量的,我们可以做一个简单实例,声明一个变量,用co

ES6系列_2之新的声明方式

在ES5中我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种声明方式. (1)var:它是variable的简写,可以理解成变量的意思. (2)let:它在英文中是"让"的意思,也可以理解为一种声明的意思. (3)const:它在英文中也是常量的意思,在ES6也是用来声明常量的,常量你可以简单理解为不变的量. 1.var声明 var在ES6里是用来升级全局变量的,也就是说,在ES6中使用var是用来声明全局变量的. var a=2; { var