JavaScript 进阶 构造函数&数据常用函数
一、深入对象
1.1 构造函数
构造函数是专门用于创建对象的函数,如果一个函数使用 new
关键字调用,那么这个函数就是构造函数。
<script>
// 定义函数
function foo() {
console.log('通过 new 也能调用函数...');
}
// 调用函数
new foo;
</script>
创建对象有三种方式
1.利用对象字面量创建对象
2. 利用 new Object 创建对象
3. 利用构造函数创建对象
<script>
const o = new Object({uname: '好', age: 14})
console.log(o)
</script>
<script>
function Person(n, a, g) {
this.uname = n
this.age = a
this.gender = g
}
let p1 = new Person('大宝', 13, '男')
let p2 = new Person('大大大宝', 138, '女')
let p3 = new Person('大对对对宝', 18, '男')
console.log(p1)
console.log(p2)
console.log(p3)
</script>
总结:
-
使用
new
关键字调用函数的行为被称为实例化 -
实例化构造函数时没有参数时可以省略
()
-
构造函数的返回值即为新创建的对象
-
构造函数内部的
return
返回的值无效!
注:实践中为了从视觉上区分构造函数和普通函数,习惯将构造函数的首字母大写。
实例成员
通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员。
总结:
-
构造函数内部
this
实际上就是实例对象,为其动态添加的属性和方法即为实例成员 -
为构造函数传入参数,动态创建结构相同但值不同的对象
注:构造函数创建的实例对象彼此独立互不影响。
静态成员
在 JavaScript 中底层函数本质上也是对象类型,因此允许直接为函数动态添加属性或方法,构造函数的属性和方法被称为静态成员。
总结:
-
静态成员指的是添加到构造函数本身的属性和方法
-
一般公共特征的属性或方法静态成员设置为静态成员
-
静态成员方法中的
this
指向构造函数本身
<script>
//成员:☞属性和方法
//实例成员: 给实例化对象添加的属性和方法
//实例成员只能被实例化对象方法
function Get() {
this.uname = 'as'
this.sayHello = function () {
console.log(1)