JavaScript基本数据类型 javascript中到底有没有类的概念
javascript中到底有没有类的概念

javascript中到底有没有类的概念
js当然有类的概念,而且它和java一样,被设计成纯粹的面向物件的语言。js是弱型别语言,但这个并不意味着它没有类的概念。很明显地,我们经常能看到new Date()、new Array()之类的呼叫。这不就是类吗?
一、定义类
那我们如何在js中自定义一个类呢?其实应该换个说法,我们该怎么获取一个某种自定义型别的物件。
自定义类Classfunction Class(){} 例项化Classvar clazz = new Class();没错,上面就是一个自定义型别物件的获取方式。我们将一个函式视作建构函式,然后配合new关键字呼叫这个函式,它就会返回某一型别的物件。如果我们执行clazz instanceof Class,返回结果就是true,说明clazz确实是Class类的例项。
基于题主应该对java比较了解,那么我就将上面的js程式码翻译成对应的java程式码以便理解:
public class Class{}Class clazz = new Class();与Java一样,js中所有物件都是预设继承自Object类的,所以无论是js还是java,执行clazz instanceof Object返回的都是true。
二、成员变数
我们知道,所谓成员变数,是指这个类的例项物件具有哪些属性。先看看Java中如何定义成员变数:
public Class { public String name; public int length = 0;}然后对照js程式码:
function Class(){ this.name = null; this.length = 0;}这里引出一个this,在js中,简单来讲,this就是指向当前物件,但实际上js中的this并不好理解,这里也不会试图讲清楚js中this怎么用。
javascript到底有没有类的概念?
没有! 不过 类 是什么要看你怎么定义了.js可以模拟类似java的class
每个物件都有个属性: prototype 就是原型咯 原型也是一个物件而已
js不是通过类来规范物件的属性和行为的,而已通过一个物件(原型物件)
* 标准化面向物件的程式码 *
---------------------------------------------------------------------------
1.原型式继承
1) 原理: 物件的建构函式可以从其他物件中继承方法,它创建出一个原型物件后,所有
其他的新物件都可以基于这个原型物件来构建
2) 原型式继承的设计适用于单继承而非多继承
3) 使用示例:
function Person(name){
this.name = name;
}
Person.prototype.getName = function(){
return this.name;
}
function User(name, password){
this.name = name;
this.password = password;
}
User.prototype = new Person(); 关键程式码!继承Person物件的所有方法
User.prototype.getPassword = function(){
return this.password;
}
2.类式继承
Function.prototype.method = function(name, fn){
this.prototype[name] = fn;
return this;
}
Function.method('inherits', function(parent){
var depth = 0;
var proto = this.prototype = new parent();
this.method('uber', function uber(name){
var func, ret, v = parent.prototype;
if(depth){
for(var i=depth; i>0; --i){
v = v.constructor.prototype;
}
func = v[name];
}else{
func = proto[name];
if(func == this[name]){
func = v[name];
}
}
++depth;
ret = func.apply(this, Array.prototype.slice.apply(arguments, [1]));
--depth;
return ret;
});
return this;
});
Function.method('swiss', function(parent){
for(var i=1,len=arguments.length; i<len; ++i){
var name=arguments[i];
this.prototype[name] = parent.prototype[name];
}
return this;
});
function Person(name){
this.name = name;
}
Person.method('getName', function(){
return this.name;
});
function User(name, password){
this.name = name;
this.password = password;
}
User.inherits(Person);
User.method('getPassword', function(){
return this.password;
});
User.method('getName', function(){
return 'My name is ' + this.uber('getName');
});
到底有没有石墨烯概念
因为石墨烯有很好的特性,所以未来前景很好,并在2013年1月22日国内石墨烯技术终于有了突破性进展,中科院重庆研究院实验室研发出国内第一款15英寸的石墨烯触控式萤幕。我国很多上市公司纷纷跟进研究开发,也就出现了石墨烯一类的股票称作石墨烯概念股。
概念股是指具有某种特别内涵的股票,也是一类具有共同特征股票的总称,
石墨烯的出现在科学界激起了巨大的波澜,人们发现,石墨烯具有非同寻常的导电效能、超出钢铁数十倍的强度和极好的透光性,它的出现有望在现代电子科技领域引发一轮革命。在石墨烯中,电子能够极为高效地迁移,而传统的半导体和导体,例如矽和铜远没有石墨烯表现得好。由于电子和原子的碰撞,传统的半导体和导体用热的形式释放了一些能量,目前一般的电脑晶片以这种方式浪费了70%-80%的电能,石墨烯则不同,它的电子能量不会被损耗,这使它具有了非同寻常的优良特性。
海龙到底有没有石墨烯概念
石墨烯是合适的OLED材料;
据美国斯坦福大学研究人员表示,较之目前普遍用于有机LED(OLED)显示器透明电极的稀有且昂贵的氧化铟锡(ITO),石墨烯(graphene)可以提供成本更低、更薄、速度更快的替代方案,从而规避ITO短缺的问题,并为柔性显示器的开发铺平道路。
要在大面积的基板上直接制作石墨烯已证明是十分困难的。然而斯坦福大学的研究团队声称已经成功开发出一种更价廉的、以溶液为基础的旋转涂布(spin-coating)散射技术,可用来制作透明的石墨烯OLED阳极。
现在的有机显示器采用无机ITO制作用于开关画素的透明电极,但由于这种材料同时也运用在LCD平板制造中,故成本高昂,供应不足。而斯坦福的研究人员表示,石墨烯的成本只有ITO的百分之一不到。
此外,与ITO相比,石墨烯的电子迁移率较高,能把电极做得更薄、更透明,导电性也更好。这些优势大大有利于超薄柔性OLED显示器的开发。
AMD到底有没有前端汇流排的概念?
AMD的是直连架构,效率比I的高,不需要考虑瓶颈问题
dota2到底有没有无敌这个概念
你是说让自身无敌一段时间吗?不收任何伤害,或者控制吗?
风杖吹自己是无敌的,不会受到任何伤害,但是屠夫能勾(没有伤害)。
隐刺开大时间内是无敌的
电猫,起飞的一瞬间是无敌的,可以躲任何技能
美白概念轰炸下,维C到底有没有用?
维生素C是一种抗氧化剂,可抑制氧化,阻止色素沉积;维生素B6具有褪除黑色素斑痕的作用,富含维生素B6的食物有鸡肉、瘦猪肉、蛋黄、鱼、虾、花生、大豆及其制品等。建议多吃以上食品。
新概念英语到底有没有美语版的?
英语吧
宇宙中到底有没有黑洞,宇宙中到底有没有黑洞
不但有,而且早已被天文学家证实,黑洞是恒星演变的一种形式。
UFC到底有没有类似“赌拳”的成分
赌博是肯定存在的,但假拳就不可能了,因为美国立法打假拳要坐牢的,而且UFC工资低的可怜,无论是处于上升期还是对于已经成名的来说,都划不来。