JavaScript系列(10)——JS面向对象基础
程序员文章站
2022-04-03 22:53:23
...
JavaScript中没有类的语法,是用函数闭包(closure)模拟出来的,下面讲解的时候还是用C#中的类、构造函数的概念,JavaScript中String、Date等“类”都被叫做“对象”,挺怪,方便初学者理解,不严谨。JavaScript中声明类(类不是类,是对象):
function Person(name,age) {
this.name = name; //属性。this.name是给Person对象动态定义一个name属性,再通过等号把传递进来的参数name的值赋给这个属性。
this.age =age; //属性。同上。
this.sayHello=function(){ //sayHello是方法,等号后面是匿名方法
alert("你好,我是"+this.name+",我"+this.age+"岁了");
}
}
var p1 = new Person("tom",20);
p1.sayHello();
必须要声明类名,function Person(name,age)可以看做是声明构造函数,Name、Age这些属性也是使用者动态添加的。
var p1 = Person("tom", 30);//不要丢了new,否则就变成调用函数了,p1为undefined。new 相当于创建了函数的一个实例。
附加:
1. 必须要明确的一点:JavaScript不是面向对象的语言。
2. JavaScript命名规范:对象的首字母用大写,方法的首字母用小写。如上面的代码中,Person是对象因此首字母大写,sayHello是方法因此首字母小写。
规范只是一种潜规则,相当于道德,可以不遵守。规则相当于法律,必须遵守。
3.
var p1 = Person("tom", 30); //Person方法调用匿名函数("tom", 30)的返回值,再把Person方法赋值给变量p1。这里的("tom", 30)匿名方法没有返回值,所以返回undefined,导致这行代码报错。
var p1 = new Person("tom",20); //创建了一个函数的实例,也叫函数的对象。
上一篇: php用来开发什么
推荐阅读
-
Javascript基础回顾之(三) js面向对象
-
前端笔记之JavaScript面向对象(三)初识ES6&underscore.js&EChart.js&设计模式&贪吃蛇开发
-
javascript面向对象基础
-
JavaScript的面向对象编程基础
-
js面向对象编程/原型链/继承 —— javascript
-
重学js之JavaScript 面向对象的程序设计(创建对象)
-
JavaScript对象基础讲解之初识面向对象
-
总结javascript基础概念(三):js对象原型链
-
带你从零学大数据系列之Java篇---第六章:面向对象基础
-
荐 夯实基础,彻底掌握js的核心技术(二):面向对象编程(Object Oriented Programming)