jsOO之原型链和java对比

本文对比了Java中的继承机制与JavaScript的原型链,探讨了JavaScript如何通过`prototype`实现对象继承,揭示了其独特的继承方式和与类概念的区别。同时,分析了两者间的联系和区别,以及JavaScript中面向对象的特殊性。
摘要由CSDN通过智能技术生成

java中的继承

class Fa{

}
class Zi extends Fa{}
interface T{} interface Q{}
class T1 implements T,implements Q,extends Zi{
}

java里面的OOP很简单。
我的目标是研究js里的OOP和Java的异同,以及优劣


js(es5)中的面相对象

function==>构造函数
new function名 ==> 创建对象
prototype ==> 父的变量传递给子,子的__proto__指向这个属性| java:直接把父的所有成员属性和方法给继承过来。(先不管static)。
为什么?javascript中有多态吗?没有。有继承么?没有。继承是干什么的?是让子继承父元素的成员变量和方法的。js中有啥?变量,方法,对象。那js咋整面相对象?hack呗,给个指针个你,让父类对象的,且专门留给子的方法和属性,给子类。子类也拿过来这个指针去搞父类。完了么?没有!既然都是对象了,那构造函数呢?创建对象呢?在子类的__proto__里面有构造器,这样就和类产生关联。

js(es5)里的继承

//class
function Fa(){

}
//class的静态方法和变量
function Fa(){
	name:'',
	age:18,
	function method1(){
		//do some thing
	}
}
//class的成员变量和方法
function Fa(){
	
}
Fa.prototype.name = '';
Fa.prototype.age=18;
Fa.prototype.method1=function(){}

为什么js中要有如此奇怪的继承

js的继承是靠上的。
js他对象是属性,他里面prototype更像是一种类型,一种类,一种模板。而且这个类,这个模板,还有构造器。哈哈哈,好像明白了。


1.js中的继承和java比没有类的概念。
2.js更像是对象的继承。
3.js中对象的继承就是java里的创建对象。
他和java克隆的区别有以下几点:
1.克隆他是对象和对象之间的,有同级关系。而继承是有层级关系。
2.克隆他可以通过重写来灵活地达到一个深拷贝的效果。而继承呢,他就是浅拷贝的。改不了。(硬是要改那就不说了)
也有几点联系:
1.我感觉克隆就是一个创建对象嘛,只不过克隆他可以自定义。至于为什么用实现接口的方式,那就是设计者的问题了,和我们无关。

定义,js中原型是什么?

原型是属性,是指针,是面相对象中继承的实现hack.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值