js理解面向对象
Posted gonghong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js理解面向对象相关的知识,希望对你有一定的参考价值。
一、什么是对象:
在java、actionscript等语言中都有对象(类的概念),我的理解是对象就是属性和方法的集合,在编程语言中有一句话叫一切皆对象,Object对象是所有对象的基类,都是继承Object;
二、在js中对象的创建:
1、用new关键字创建对象:
var obj=new Object();
new 关键字是语法糖,他创建了一个实例对象,继承了Object的属性和方法,以下是new 经历哪些步骤和代码模拟
<script type="text/javascript"> function Persion(){ /** *func:构造函数 */ this.dec="这是描述"; } Persion.prototype.sayHell=function(){ console.log("您好"); } function desaginNew(tt){ /* *func:模拟new关键字; */ //第一步:创建新的对象; var obj={}; var creatObj=[].shift.call(arguments); //第二步:改变this指向,把新的对象的_proto_指向Persion对象的prototype原型对象; obj._proto_=creatObj.prototype; //第三步:执行构造函数的代码为新对象添加属性和方法; Persion.call(obj); //第四步:返回对象; return obj; } var newPersion=desaginNew(Persion); </script>
2、用字面量创建对象:
var obj={name:"",age:"",say:function(){}};
3、构造函数创建对象:
构造函数:在java语言中类的定义中都有构造函数,在js中也有构造函数的概念,Object对象都有constructor构造函数方法;
js中Object对象都有以下属性和方法:
1、constructor:构造函数属性,它指向了Object()函数;
2、hasOwnProperty:判断是否是对象自身属性和方法;
3、isPrototypeOf:判断是否是某个对象的子对象即继承某对象;
function Persion(){ /** *func:构造函数 */ this.name="名字"; this.say=function(){ console.log("您好"); } } //自身属性要实例化后才能访问属性和方法; console.log(new Persion().name);//"名字" console.log(new Persion().say());//"您好;
4、es6中新增class关键字创建类