js你懂吗?今天一起来学习js高级

JS高级学习之路day1
对象:特指一个具有特征和行为的东西
特征—》属性
行为—》方法
三种创建对象的方式
1.字面量的方式
2.调用系统的构造函数
3.自定义构造函数方式

//实例对象
var per1={
name:“卡卡西”,
age:20,
sex:“男”,
eat:function(){
console.log(“吃臭豆腐”);
},
readBook:function(){
console.log(“亲热”);
}
};

//调用系统函数
var per2=new Object();
per2.name=“大蛇丸”;
per2.age=30;
per2.sex=‘男’;
per2.eat=function(){
console.log(“吃榴莲”);
};
per2.play=function(){
console.log(“这个小蛇真好玩”);
};
console.log(per2 intanceof Object);

//自定义构造函数
function Person(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
this.play=function(){
console.log(“打游戏”);
};
}
var per=new Person(“压抑”,18,“男”);
console.log(per intanceof Person);

开辟空间创建对象
把this设置为当前的对象
设置对象的属性和方法的值
把this值返回

工厂模式
function createObject(name,age){
var obj=new Object();
this.name=name;
this.age=age;
this.sayHi=function(){
console.log(“您好”);
};
return obj;
}

工厂模式
函数名
有new
有返回值
new之后的对象是当前的对象
直接调用函数创建对象

自定义构造函数
函数名是大写
没有new
没有返回值
this是当前的对象
通过new的方式来创建对象

实例对象和构造函数之间的关系:
1.实例对象是通过构造函数来创建的–创建的过程叫实例化
2.如何判断对象是不是这种数据类型?
1)通过构造器的方式 实例对象.构造器==构造函数名字

dog.constructor==函数名字
2)对象instanof构造函数名字
dog.instanceof 函数名字

通过原型来添加方法,解决数据共享,节省内存空间
函数名.prototype.属性=function(){执行语句 };

复习原型
实例对象中有两个属性(通过构造函数来获取)
构造函数中并没有sex和age属性

原型
实例对象有个属性,proto,也是对象,不是标准属性
(浏览器使用)
构造函数有个属性,prototype,也是对象,不是标准属性(程序员使用)

原型----》_proto_或者prototype都是原型对象
作用:共享数据,节省内存空间

构造函数可以实例化对象
里面有一个属性叫prototype,是构造函数的原型对象
而原型对象prototype中有一个construtor构造器,指向的就是所在的构造函数。

实例对象的原型对象(proto)指向的是该构造函数的原型对象,有这个__proto__的肯定就是实例对象
构造函数的原型对象(prototype)中的方法是可以被实例对象直街访问

猜你喜欢

转载自blog.csdn.net/weixin_43315739/article/details/85346579