js中的三大特性:继承、封装、多态

本文探讨了JavaScript如何实现面向对象编程的三大特性:封装、继承和多态。详细介绍了原型链的作用及其实现方式,并展示了如何利用jQuery和JSON进行对象扩展与数据交换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

今天看了一下js,加强javascript.资料来源于传智播客与网络。

做了一些记录,如下:

java 三大特性:封装、继承、多态。
js 也能将这三大特性体现的淋漓尽致。
js 对象也是一样的,一直做java,也一直使用js,但平时没注意。
其实这也就是面向对象的思想体现吧,不分语言,都有封装、集成、多态这三大特性,平常老说java 的三大特性,看来是有点受限制了。

原型属于构造器。
原型能干什么?
功能是将对象的属性延续下去。(继承)
原型通过内部的原型链来维护。
原型默认只有constructor属性。
Object 是原型链上最顶层的对象。(原型链)和属性有关
window作用域的最顶层对象(作用域链)。在执行环境中,与变量有关
原型集成,有一个弊端:只能有单继承。 php不支持多继承。

js 怎样实现多继承?
可以使用call()方法实现多继承。

jquery是怎么实现继承的?
jQuery.extend = jQuery.fn.extend = function(obj, prop) {
// 防止传入错误的参数prop;
if( argumnets.length > 1 && ( prop === null || prop == undefined)
return obj;

// 如果prop为空,则将obj扩展到自己身上,jQuery.js中大部分都是为空;
if( !prop ) {
prop = obj;
obj = this;
}

// 将prop的所有属性复制到obj;
for (var i in prop )
obj[ i ] = prop[ i ];

return obj;
}


json(JavaScript Object Notation)(对象表示法)

我们可以使用json格式的字符串,在应用之间传递数据(php==javascript)。

关于json的一个提问:
js1={"a1":"a1"、"a2":"a2"}
js2={"b1":"b1"、"b2":"b2"}
js1、js2为json对象
如何把js1中的对象和js2中的对象相加形成一个新的json对象?
回答:
function extend(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
}
var js1={"a1":"a1", "a2":"a2"};
var js2={"b1":"b1", "b2":"b2"};
extend(js1, js2);
for(var j in js1) {
alert(js1[j]);
}
上面这个方法,什么对象都可以相加,主要是理解for...in的用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值