频道栏目
首页 > 资讯 > JavaScript > 正文

Javascript的面对对象的理解(prototype,函数和对象等概念)

16-12-06        来源:[db:作者]  
收藏   我要投稿

首先先生明一下JavaScript面对对象和Java,c#这种高级语言的面对对象有很较大的不同。

JavaScript在面对对象“继承”的时候,可以动态的修改修正。换句话说可以动态的继承,在执行的过程中可以随时的修正继承关系,属性等。然而Java等高级语言的面对对象在声明类的同时,就要确定继承方式,如同模具一样,你一旦选择了模具就不能再次修改了。

之所以JavaScript中你可以自由的“捏制”你想要的对象,在于JavaScript中有prototype(原型)提供给开发者。

JavaScript中声明对象的常见的几种方式:

var obj = {

name:'jack',

age : 20,

run : function()

{

alert(this.name);

}

}

var obj = new Object();

obj.name = 'jack';

obj.age = 20;

obj.run = function()

{

alert(this.name);

}

上面两种方式我们也经常看到,但是对于JavaScript声明类,还是较为常用function关键字,也是较为官方正式的方式。

function Father (){

var name = 'jack';

var age 20;

var run = function()

{

alert(name);

}

}

var f = new Father(); //声明对象

那么这里就需要说明函数和对象是什么关系?

在这里我先总结一下下面讲述的主旨:在JavaScript中对象最终源于函数的产生的,但是函数又有对应的对象原型(Object),但是函数又最终是Function构造器创建的。看了我这段话的总结似乎很是眩晕,那么慢慢看接下来的解析吧。

解析之前,先说下我们的老朋友,typeof() 这个方法可以让我们看到类型。

function F(){
console.log("F run");
}
var obj = new Object();
var f = new F();
console.log(typeof(obj));
console.log(typeof(f));

说明new object 和new function 都是对象类型。(只要调用new 在JavaScript中都是创建一个对象)为什么呢?

那么我们需要了解Object和function都有prototype属性,Object的prototype属性是空(这个一定要记住),function的prototype属性指向object;prototype是什么我们稍后再讲。

相关TAG标签
上一篇:Jquery实现简单的滚动刷新效果
下一篇:apache2.4.9下配置配置多域名多站点
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站