javascript面向对象

1、JavaScript面向对象编程
	a.虽然js中都是函数,并没有像C#中那样“类”与“对象”的概念,但是为了方便编程,并且我们都习惯于使用面向对象的方式,所以在js中也需要实现类似于“类”与“对象”的面向对象的编程方式。(js也有内置对象)
	b.js中的面向对象也都是通过维护变量的作用域等方式来模拟的
	注:JavaScript中没有“类”的概念,全都是对象。“函数”是对象,通过new 关键字调用“函数”创建的也是对象。
      “函数”本身是一个“函数对象”,而通过new关键字调用“函数”创建的对象又是另外一个对象,是两个不同的对象。
2、函数对象中的prototype属性:原型
	a.prototype是“函数对象”的属性。(回忆“函数对象”其他成员)
	b.通过该属性可以实现类似C#中的“扩展方法的功能”。
        c.定义在prototpye中的成员是所有对象共享的。所以一般将方法定义在prototype中,而属性则定义在“构造函数”中。
	d.通过该属性可以实现js中的继承。
3、JavaScript中的“继承”
	js中的继承都是通过prototype实现的,所以一般叫做:“原型继承”。
	注意:prototype属性只有函数对象才有(就像call()、apply()函数一样),
	其他对象只有__proto__属性,没有prototype
4、Js中的“闭包”(*了解closure)
	a.什么是“闭包”?
	在一个函数内部又定义了一个函数,内部函数函数能访问外部函数作用域范围内的变量,这时这个内部函数就叫做闭包。无论这个内部函数在哪里被调用都能访问的到外部函数作用域中的那些变量。
	b.“闭包”是怎么实现的?
	通过作用域链
	c.“闭包”能做什么?
	改变变量作用域
	Js中的面向对象都是用“闭包”来模拟的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值