JS面向对象
来自CloudWiki
面向对象
面向对象编程 Object Oriented Programming OOP
例子:
司机 属性: 姓名 性别 年龄 籍贯 … 技能(方法): 喷人 鸣笛 打方向盘 踩油门 司机 — 对象(类别) 小张 — 司机的实例
JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉Java或C#,你一定明白面向对象的两个基本概念:
- 类:类是对象的类型模板,例如,定义Car类来表示车,类本身是一种类型,Car表示车的类型,但不表示任何具体的某辆车。
- 实例:实例是根据类创建的对象,例如,根据Car类可以创建出benz等多个具体实例,每个实例表示一个车,他们全都属于Car类型。
所以,类和实例是大多数面向对象编程语言的基本概念。
不过,在JavaScript中,这个概念需要改一改。JavaScript不区分类和实例的概念,而是通过原型(prototype)来实现面向对象编程。
var Car = function(){ // benz.price=10000; this.price = 100000; }; var benz = new Car(); //创建实例对象 console.log(benz.price); //100000
也可以通过传参数的方法,来设置对象的属性:
var Car = function( p ){ this.price = p; }; var benz = new Car(50); //创建实例对象,传入参数p console.log(benz.price); //50
严格模式
严格模式通过在脚本或函数的头部添加 “use strict”; 表达式来声明。
- “use strict” 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
- 它不是一条语句,但是是一个字面量表达式,在 JavaScript 旧版本中会被忽略。
- “use strict” 的目的是指定代码在严格条件下执行。
- 严格模式下你不能使用未声明的变量。
实例:
x = 3.14; // 不报错 myFunction(); function myFunction() { "use strict"; y = 3.14; // 报错 (y 未定义) }