JavaScript语法高级第一天学习笔记
本文章为本人在学习中自己总结的学习笔记,望大家喜欢采纳!
创建普通对象与工厂模式创建对象以及构造函数知识!!
1.使用js创建普通对象:
//创建一个学生对象: 名称 年龄 方法 吃饭;
//通过js创建普通对象方式:
var s1 = {
name:“张三”,
age:18,
eat:function(){
console.log("正在吃:")
}
}
var s2 = {
name:“李四”,
age:21,
eat:function(){
console.log("正在吃:")
}
}
var s3 = {
name:“王五”,
age:16,
eat:function(){
console.log(this.name +"正在吃:")
}
}
普通对象创建方式:
优点:简单,方便;
缺点:无法量产;
由于工作开发项目中多个创建对象,我们使用普通创建对象是比较不方便,我们可以使用“工厂模式”创建;
2.使用工厂模式创建对象:
//使用函数(工厂模式)创建对象
function createStudent(name,age,){
var s = new Object();
s.name = name;
s.age = age;
eat:function(){
console.log(this.name+"正在吃");
}
return s;
}
工厂模式创建对象方式:
优点:可以量产对象;
缺点:通过工厂模式创建出来的对象,无法明确对应类型;
3.构造函数创建:
借鉴了其他语言创建对象方法,创建类
类:同一类型事物的总称,包含的属性和方法 都写到构造函数里面
由于js没有类这个概念,我们利用构造函数模式来模拟类,利用js this指向的问题
//创建一个学生类
function Student(name,age){
this.name = name;
this.age = age;
this.eat = function(){
console.log(this.name+"正在吃!")
}
}
var s1=new Student("王一",21)
var s2=new Student("张三",21)
var s3=new Student("李四",23)
//s1 prototype 原型 一样的
//s2 prototype 原型 一样的
//s3 prototype 原型 一样的
console.log(s1.prototype==s2.prototype)
console.log(s2.prototype==s3.prototype)
console.log(s3)
这里的 new 做的是创建一个空对象{},执行后面的构造函数,将函数内容this,指向空对象,函数执行完成后,将创建的空对象返回给前方变量;