当前位置: 首页 > news >正文

深圳招聘信息最新招聘信息查询名片seo什么意思

深圳招聘信息最新招聘信息查询,名片seo什么意思,上饶招聘网站建设公司,中国发达国家2.12. class类 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过 class 关键字,可以定义类。 ES6 的 class 可以看作只是一个语法糖,它的绝大部分功能ES5 都可以做到&…

2.12. class类

ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过 class 关键字,可以定义类。

ES6 的 class 可以看作只是一个语法糖,它的绝大部分功能ES5 都可以做到,新的 class 写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。

// ES 5
// 人员 : 相当于 构造方法
function Person(name, sex){this.name = name;this.sex = sex;
}//添加方法
Person.prototype.sayHi = function(){console.log("大家好!!");
}//实例化对象
let wang = new Person('王小二', '男');
wang.sayHi();
console.log(wang);// ES 6
//class
class Emp{//构造方法 名字不能修改constructor(name, sex){this.name = name;this.sex = sex;}//方法必须使用该语法sayHi(){console.log("大家好!!");}
}let li = new Emp("李小三", '女');
li.sayHi()
console.log(li);

2.12.1.set/get 方法

在name属性之前添加了get和set关键字,这样就创建了一个名为name的访问器属性。get方法用于获取该属性的值,set方法用于设置新的值。

需要注意的是,使用属性访问器时,实际的属性名会在内部使用一个带下划线的变量名来存储。这是一种常见的命名约定,用于区分属性访问器和实际存储属性的变量。

 class Stu {constructor(name) {this._name = name;}get name() {console.log('读取 name 属性')return this._name;}set name(newName) {console.log('修改 name 属性');this._name = newName;}}const stu = new Stu('王小二');
console.log(stu.name); // 输出 "王小二"stu.name = '李小三';
console.log(stu.name); // 输出 "李小三"

2.12.2.静态

static 属于 类不属于 对象

// ES 5// function Stu(){
//
// }// 下面定义的属性方法属性 Stu , 相当于 静态的
// name 属性 , 比较特殊 为  Stu
// Stu.age = 12;
// Stu.sayHello = function(){
//     console.log("hello, 我是王小二");
// }
// console.log(Stu.age)
// Stu.sayHello();// Stu.prototype.sex = '男';
//
// let wang = new Stu();
// //  这些属性是属于 Phone 的, 而不是属于 wang 的
// console.log(wang.name);
// wang.sayHello();
// console.log(wang.sex);// ES 6
class Stu{//静态属性static name = '李小三';static sayHello(){console.log("hello, 我是李小三");}
}let li = new Stu();
console.log(li.name);
// li.sayHello();
console.log(Stu.name);
Stu.sayHello();

2.12.3.继承

2.12.3.1.ES 5 构造继承
// ES 5
// 人员 父类
function Person(name, sex){this.name = name;this.sex = sex;
}//添加方法
Person.prototype.sayHi = function(){console.log("大家好!!");
}//员工 子类 , 增加了 salary 薪水 属性
function Employee(name, sex, salary){// 调用父类的构造函数, 将自己及属性值 传入Person.call(this, name, sex);this.salary = salary;
}//设置子级构造函数的原型
Employee.prototype = new Person;
Employee.prototype.constructor = Employee;//声明子类的方法
Employee.prototype.eat = function(){console.log("去食堂")
}const wang = new Employee('王小二', '男',6499 );console.log(wang);
console.log(wang.name);
console.log(wang.sex);
console.log(wang.salary);
wang.sayHi();
wang.eat()

在这段代码中,EmployeePerson 的子类。以下是这两句代码的含义:

  1. Employee.prototype = new Person; 这行代码的作用是将 Person 构造函数的一个实例赋值给 Employee 原型对象。通过这样做,所有 Employee 类的实例都将继承 Person 类的所有方法和属性(通过原型链)。在这里调用 new Person 时并没有传入参数,因此新创建的 Person 实例的 namesex 属性将是 undefined。不过,在接下来的 Employee 构造函数内部已经通过 Person.call(this, name, sex) 正确地设置了这些属性。
  2. Employee.prototype.constructor = Employee; 在 JavaScript 中,每个构造函数的原型对象都有一个内置的 constructor 属性,它指向该构造函数本身。但是,当执行了 Employee.prototype = new Person 后,Employee 原型对象的 constructor 被修改为指向 Person。为了修复这一问题,并确保 Employee 的实例能够正确识别其构造函数,需要手动设置 Employee.prototype.constructorEmployee。这样做的目的是在后续可能涉及检查对象构造函数的场景下(如 instanceof 操作符或 .constructor 属性),能正确识别出对象是由哪个构造函数创建的。
2.12.3.2.ES 6 构造继承
// ES 6
class Person {//构造方法constructor(name, sex){this.name = name;this.sex = sex;}//父类的成员方法sayHi(){console.log("大家好!!");}
}class Employee extends Person {//构造方法constructor(name, sex, salary) {super(name, sex);// Phone.call(this, brand, price)this.salary = salary;}eat() {console.log("去食堂")}// sayHi(){//     console.log("大家好!!我转正了");// }
}const li = new Employee('李小三', '女', 5799 );
console.log(li);
console.log(li.name);
console.log(li.sex);
console.log(li.salary);
li.sayHi();
li.eat()

2.12.4.( ES 11 )私有属性

通过 在属性前加 # 来设置私有的属性,

在内部可以直接使用( 如: info() ),

在外部直接调用 会报错 , Uncaught SyntaxError: Private field ‘#age’ must be declared in an enclosing class

class Person{//公有属性name;//私有属性#age;#weight;//构造方法constructor(name, age, weight){this.name = name;this.#age = age;this.#weight = weight;}info(){console.log(this.name);console.log(this.#age);console.log(this.#weight);}}//实例化
const girl = new Person('李小三', 18, '45kg');console.log(girl.name); // 李小三
console.log(girl.#age); // Uncaught SyntaxError: Private field '#age' must be declared in an enclosing class
console.log(girl.#weight); // Uncaught SyntaxError: Private field '#weight' must be declared in an enclosing classgirl.info();
http://www.hkea.cn/news/761746/

相关文章:

  • 建设厅八大员兴安盟新百度县seo快速排名
  • 南京网站建设索q.479185700小说排行榜百度
  • 幼儿做爰网站seo工程师是什么职业
  • 申请空间 建立网站吗西安百度推广运营
  • 做花馍网站百度联盟
  • 沈阳建设企业网站google浏览器官网
  • 毕业论文 网站开发营销qq下载
  • 建网站要多长时间外贸网站优化
  • 苹果网站做的好的点电脑培训网上免费课程
  • 做网站开源互联网优化是什么意思
  • 模仿做网站b站上海热点新闻
  • phpcmsv9网站地图地推的60种方法
  • 湖南手机版建站系统哪个好百度网盘app怎么打开链接
  • asp网站开发的实训报告电商营销推广有哪些?
  • 交互设计流程外贸网站优化公司
  • 网络营销网站策划个人网站seo入门
  • 云南省网站备案要求全渠道营销的概念
  • 装修网站合作平台有哪些torrentkitty磁力猫
  • 大理网站开发长春seo结算
  • 西双版纳疫情最新情况seo营销的概念
  • 网站推广seo蜘蛛屯优化排名模板建网站价格
  • 怎样建设公司网站小程序b2b网站大全免费
  • 百度抓取不到网站百度识图搜索图片来源
  • 企业网站栏目规划的重要性网络营销的概述
  • 公司网站建设找谁做免费发布推广信息网站
  • 虚拟币网站开发seo百度关键字优化
  • 网站建设都 包括哪些淄博网站制作
  • 自己做装修网站南宁百度推广seo
  • 品牌建设浅谈seo网络营销外包
  • 昆山网站建设兼职千锋教育的官网