- 浏览: 8764 次
最新评论
JavaScript 构造函数
2011年08月19日
JavaScript里虽然没有类这个概念,但是可以通过定义伪类即构造函数和原型对象prototype来实现。
一、构造函数说明
JavaScript新建一个对象可以通过new关键字来实现
var obj=new Object();
这个前提是必须首先定义了这个函数,才可以对其new一个新对象。JavaScript里本身已经有一些对象可以使用了,所
以我们在自定义一个对象的时候要首先知道JavaScript有哪些对象是可以直接使用的,避免重复出错。
JavaScript里有三种类型的对象:本地对象,内置对象,宿主对象,关于这三个类型的对象的详细参见 这里 。不过我
这里还是说明一下。
(1)本地对象
ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。简单来说,本
地对象就是 ECMA-262 定义的类(引用类型)。它们包括:(图片是借用的不过忘记出处了)
Object Function Array String Boolean Number Date RegExp Error EvalError
RangeError ReferenceError SyntaxError TypeError URIError
(2)内置对象
ECMA-262 把内置对象(built-in object)定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象,
在 ECMAScript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已被实例化了。
ECMA-262 只定义了两个内置对象,即 Global 和 Math (它们也是本地对象,根据定义,每个内置对象都
是本地对象)。
(3)宿主对象
所有非本地对象都是宿主对象(host object),即由 ECMAScript 实现的宿主环境提供的对象。所有 BOM
和 DOM 对象都是宿主对象。也就是说宿主对象包括内置对象以及自定义的对象。
知道了JavaScript中的对象类型后我们就可以构建对象了。对于本地对象我们需要实例化再使用,内置对象可以直接
使用,因为其本身就已经实例化了,对于宿主对象是重点,因为我们首先要定义(即构造函数)这个对象,这个就是
这篇文章的重点了。
(二)构造函数使用
JavaScript中构造函数这个词儿似乎挺玄妙的,用的最多的其实就是创建一个function对象。
var obj=new fun1();
obj.show(); //obj.show is not a function
obj.show1(); //我是周阿里!
obj.show2(); //我是周阿里哈哈!
obj.show3(); //我是周阿里嘿嘿!
alert( obj.hobby );//undefined
obj.show4(); //obj.show4 is not a function
fun1.prototype.show=function(){ alert("周阿里!"); }
fun1.prototype.hobby="K歌";
function fun1(){
this.name="周阿里";
this.gender="女";
this.show1=function(){ //此方法可以通过fun1的实例调用
alert("我是周阿里!");
}
function show2(){ //此方法不可以通过fun1的实例调用,这能在fun1内部使用
alert("我是周阿里哈哈!");
}
fun1.prototype.show3=function(){
alert("我是周阿里呵呵!");
}
}
obj.show4(); //obj.show4 is not a function
fun1.prototype.show4=function(){ alert("我是周阿里嘿嘿!"); }
obj.show4(); //我是周阿里嘿嘿!
obj.show2();// obj.show2 is not a function 从这个例子中可以很容易的看出如下的结论:
(1)通过new创建一个对象的实例会首先执行它的构造函数,并且不存在new对象在构造函数前还是后的顺序,
放在什么地方都是一样的。
(2)在构造函数外使用prototype添加的方法或者属性的调用必须在申明之后,否则会报错:xx is not a function
或者返回为undefined ,如上面黄条部分所示效果
(3)构造函数中如果不通过this来指定的话,就只能在该函数内部使用,外部无法调用,上例绿条所示
类别:javascript专栏
发表评论
-
Symbian^3开发环境配置
2012-01-20 09:33 627Symbian^3开发环境配置 2011年01月06日 ... -
Symbian^3开发环境配置
2012-01-20 09:33 532Symbian^3开发环境配置 2011年01月06日 ... -
创建Windows服务实现MSSql数据库备份
2012-01-20 09:33 599创建Windows服务实现MSSql数据库备份 2010年1 ... -
Qt For Wince平台的搭建【vs2008 】
2012-01-20 09:33 750Qt For Wince平台的搭建【vs2008 】 201 ... -
在Windows下编译OpenSSL(VS2005)
2012-01-20 09:33 1197在Windows下编译OpenSSL(VS2005) 201 ... -
这个长假跟我无关
2012-01-19 14:37 563这个长假跟我无关 2011年09月30日 中午在纸上罗列 ... -
和孩子一起成长
2012-01-19 14:37 626和孩子一起成长 2011年0 ... -
教育孩子应从自己开始
2012-01-19 14:37 532教育孩子应从自己开始 ... -
125个常用javascript语句.
2012-01-17 04:22 556125个常用javascript语句. 2011年07月24 ... -
selenium Beginners Guide (5)-- 用户扩展和插件 User Extensions and Add-ons
2012-01-17 04:22 760selenium Beginners Guide (5)-- ... -
javascript 的一些知识点
2012-01-17 04:22 542javascript 的一些知识点 2011年09月15日 ... -
js几个小技巧常用正则表达式
2012-01-17 04:22 880js几个小技巧常用正则表达式 2011年05月19日 一 ...
相关推荐
JavaScript构造函数和原型对象介绍,对于构造函数的创建以及一些简单地介绍,还有就是原型对象对于构造函数的一些补充。
Javascript构造函数是非常强大的,它可能也是Javascript能被充分利用的特点之一。但是如果你想真正的了解Javascript,你还是应该明白构造函数是如何工作的。本文,我们将从三个方面来讲述构造函数。
构造函数就是初始化一个实例对象,对象的prototype属性是继承一个实例对象。本文给大家分享javascript构造函数详解,对js构造函数相关知识感兴趣的朋友一起学习吧
以下是一个构造函数的例子 如果是实例方法,不同的实例化,它们引用的地址是不一样的,是唯一的。 //定义一个构造函数 function People(name,age){ this.name=name; this.age=age; this.dothings=function(){ ...
其中公有方法声明的部分采用的两种方式,在实际应用中一般采取一种方式就可以了,如果两种方式都要采用的话,应注意顺序,防止前面写的方法被清空或覆盖。
本文将介绍javascript构造函数调用方面的案例应用,需要了解的朋友可以参考下
主要介绍了一文秒懂JavaScript构造函数、实例、原型对象以及原型链的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
关于JavaScript构造函数,如今出现了很多JavaScript的框架,例如jQuery、Ext等等这些,这些将JavaScript作为一种面向对象的语言进行编程,那么JavaScript到底是怎么样实现面向对象的一些特征的呢,首先,我们来看看...
javascript构造函数
主要介绍了javascript 构造函数方式定义对象的方法及示例,需要的朋友可以参考下
JavaScript 中的构造函数和其它语言中的构造函数是不同的。通过 new 关键字方式调用的函数都被认为是构造函数。任何JavaScript 函数都可以用做构造函数,构造函数必须使用new 运算符作为前缀来创建新的实例。
主要介绍了javascript组合使用构造函数模式和原型模式的方法,通过一个简单实例分析了javascript构造函数模式与原型模式的使用方法,需要的朋友可以参考下
js播放列表一个Treehouse项目,使用JavaScript构造函数和原型。 在这个包装了Treehouse的“面向对象编程”标志的项目中,我的任务是向所提供的文件中添加功能,以使用JavaScript创建一个简单的(不起作用的)媒体...
对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅。。(哔!)。
JS中的函数即可以是构造函数又可以当作普通函数来...和其他高级语言一样 Javascript 中也有构造函数和 new 运算符,我们知道 new 是用来实例化一个类,从而在内存中分配一个实例对象。 但在 Javascript 中,万物皆对
滑杆 JavaScript构造函数,该函数创建图像滑块并将其添加到网页。 该构造函数使用D3.js,它将允许在将来的版本中进行简单,可自定义的过渡和效果。
在学习构造函数之前我们需要知道我们学习构造函数需要学习什么: 1.什么是构造函数 2.构造函数用来做什么 3.构造函数的执行过程 4.构造函数的返回值 1.所以首先我们需要知道什么是构造函数: 在我看来,构造函数...
用于从文件输入验证图像尺寸的 JavaScript 构造函数。 这依赖于 FileReader。 如果 FileReader 不存在,它将优雅地失败。 这可以与受 Laravel 的 Validator 类启发的一起使用,也可以单独使用。 开始 在dist文件夹...