创建 JavaScript 对象
- 方法一:使用 Object 定义并创建对象的实例。
let person = new Object()
person.name = 'John' // 添加 name 属性
console.log(typeof person) // object
console.log(person.name) // John
- 方法二:字面量方式创建
let person = {
name: 'John',
age: function Age() {
return 20
}
}
console.log(person.name) // John
console.log(person.age()) // 20
- 方法三:使用函数来定义对象,然后创建新的对象实例。
function Person(name, age){
this.name = name
this.age = age
this.say = function(){
console.log(this.name + this.age)
}
}
let person = new Person('John ',20)
console.log(person.name) // John
person.say() // John 20
在JavaScript中,this通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)。
把方法添加到 JavaScript 对象
- 方法只不过是附加在对象上的函数。
在构造函数内部定义对象的方法:
function Person(name,age){
this.name = name
this.age = age
this.changeName = changeName
function changeName(name){
this.name = name
}
}
let person = new Person('John ',20)
person.changeName('Mike')
console.log(person.name) // Mike
prototype 原型对象
- 所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法。
- Date 对象从 Date.prototype 继承。Array 对象从 Array.prototype 继承。Person 对象从 Person.prototype 继承。
- 添加属性
function Person(first, last, age){
this.firstName = first
this.lastName = last
this.age = age
}
Person.prototype.nationality = "中国" // 添加国籍属性
let person = new Person('张','三 ','20')
console.log(person.nationality) // 中国
- 添加方法
function Person(first, last){
this.firstName = first
this.lastName = last
}
Person.prototype.name = function(){
return this.firstName + this.lastName
}
let person = new Person('张 ','三')
console.log(person.name()) //张 三
不积跬步无以至千里 不积小流无以成江海