您的位置:

js实例成员(js什么是实例)

js实例成员(js什么是实例)

更新:

本文目录一览:

求助,关于js面向对象成员方法的

JavaScript中对象的创建有以下几种方式:

(1)使用内置对象

(2)使用JSON符号

(3)自定义对象构造

一、使用内置对象

JavaScript可用的内置对象可分为两种:

1,JavaScript语言原生对象(语言级对象),如String、Object、Function等;

2,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body等。

我们所说的使用内置对象,是指通过JavaScript语言原生对象的构造方法,实例化出一个新的对象。如:

复制代码 代码如下:

var str = new String("实例初始化String");

var str1 = "直接赋值的String";

var func = new Function("x","alert(x)");//示例初始化func

var o = new Object();//示例初始化一个Object

二、使用JSON符号

(i)何谓JSON ?

JSON (JavaScript Object

Notation)即JavaScript对象命名,是一种轻量级的数据交换格式,易于阅读和编写,同时也易于及其解析和生成。它基于

《JavaScript Programming Language, Standard ECMA-262 3rd Edition -

December 1999》的一个子集。JSON是完全独立于语言的文本格式,因此成为数据交换的理想格式。

JSON作为

JavaScript的一个自己,同时ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、

ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等一系列的语言都提供支持,使得JSON成为Ajax开发的

首选方案。

JSON有两种构建方式,一种是采用简单的逗键/值对地的集合,在不同的语言中被理解为对象、记录、结构、字典、哈希表、有键列表,或者关联数组等,另一种采用有序的值列表,大部分语言把它理解为数组。

常用的创建方式是第一种,即采用逗键/值对地集合的形式。在这种形式下,一个对象以逗{地(左括号)开始,逗}地(右括号)结束。每个逗名称地后跟一个逗:地(冒号),逗

‘键/值' 对地之间使用逗,地(逗号)分隔。

JSON具有以下特点:(1)简单格式化的数据交换;(2)易于人们的读写习惯;(3)易于机器的分析和运行。

在JavaScript中,JSON被理解为对象。通过字符串形式的JSON,数据可以很方便地解析成JavaScript独享,并进行数据的读取传递。通过JSON,在一定程度上客服了JavaScript对象无法作为参数系列化传递的问题。

1,简单的JSON

{name:"刘德华",age:"25",sex:"男"}

2,JSON值的类型

JSON的值可以是简单的数据类型,例如数字、浮点、字符等,也可以是数组及对象。例如以数组作为member键值的JSON:

{member:[{name:"刘德华"},{name:"郭富城"},{name:"张学友"},{name:"黎明"}]}

{

book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}],

author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}]

}

3,在JavaScript中使用JSON

JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或者工具包,JavaScript默认将JSON当做一个对象处理。

将对象传递给一个变量,例如:

复制代码 代码如下:

var somebooks = {

book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}],

author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}]

}

JSON的每个逗键地相当于对象的属性,例如访问book中的第一个条目,在JavaScript中,就可以简单地使用逗somebooks.book[0].name地来获取逗三国演义地这个值。

我们不但可以将一个JSON字符串转化为对象,反过来将一个对象逗编译地为一个JSON字符串,以方便JavaScript中的对象的传输。例如:

复制代码 代码如下:

var Animals = new Object();

Animals.name = "dog";

Animals.sex = "Male";

Animals.age = "2";

Animals对象无法被序列化传输,将Animals对象转化为JSON字符串,也就是逗{name:"dog",sex:"Male",age:"2"}地。这样,把该JSON字符串作为HTTP请求的一个参数传递,从而达到序列化传输Animals对象的目的。

(ii)JSON通过字符串形式来表达JavaScript的对象。如:

复制代码 代码如下:

var myObject = {nickname:"my girlfried",name:"big

pig"};

JSON

实际上充当了一种在JavaScript对象和字符串之间实现相互转换的协议。由于JSON的逗外表地可以看成但村的字符串,因此JSON在

JavaScript的对象传输方面可以起到一定的作用。例如把对象strObject转换成字符串后进行传输,在达到目的地后通过eval方法将其还原

成对象:

复制代码 代码如下:

function test (o)

{

alert (o.name)

}

var strObject = '{nickname:"my girlfriend",name:"big pig"}';

test (eval_r("(" + strObject + ")"));

三、自定义对象构造

创建高级对象构造有两种方式:使用逗this地关键字构造、使用原型prototype构造。如:

复制代码 代码如下:

//使用this关键字定义构造的上下文属性

function Girl()

{

this.name = "big pig";

this.age = 20;

this.standing;

this.bust;

this.waist;

this.hip;

}

//使用prototype

function Girl(){}

Girl.prototype.name = "big pig";

Girl.prototype.age = 20;

Girl.prototype.standing;

Girl.prototype.bust;

Girl.prototype.waist;

Girl.prototype.hip;

alert(new Girl().name);

上例中的两种定义在本质上没有区别,都是定义逗Girl地对象的属性信息。逗this地与逗prototype地的区别主要在于属性访问的顺序。如:

复制代码 代码如下:

function Test()

{

this.text = function()

{

alert("defined by this");

}

}

Test.prototype.test = function()

{

alert("defined by prototype");

}

var _o = new Test();

_o.test();//输出逗defined by this地

当访问对象的属性或者方法是,将按照搜索原型链prototype

chain的规则进行。首先查找自身的静态属性、方法,继而查找构造上下文的可访问属性、方法,最后查找构造的原型链。

逗this地

与逗prototype地定义的另一个不同点是属性的占用空间不同。使用逗this地关键字,示例初始化时为每个实例开辟构造方法所包含的所有属性、方法

所需的空间,而使用逗prototype地定义,由于逗prototype地实际上是指向父级的一种引用,仅仅是个数据的副本,因此在初始化及存储上都比

逗this地节约资源。

JS类中,静态方法怎么获取实例

1,静态的成员直接类名点成员名就能访问。

2,实例成员你需要先创建新的实例!然后实例名点成员名!

JS怎么在类实例的事件处理函数中访问类实例的成员

在事件处理函数之外定义一个变量 var that = this;

然后在事件处理函数之内用 that.成员名 访问。

如果支持ES6的话,直接使用箭头函数可以直接用 this访问。

javascript的对象和变量之间的区分

0, JavaScript的变量有几种类型: number, string, boolean, function, object, 对象就是变量的一种类型.

1,var request = createRequest();

我可以吧request当作一个变量,由createRequest方法来赋值;

这个说法有歧义, 不是由方法对变量赋值, 而是使用createRequest的返回值为变量赋值.

2, 我也可以把它当作一个object,于是request.xxx可以访问createRequest方法里面的xxx。

这个理解是错的, 从外部不能访问到方法内部定义的变量. 有一种特殊的情况:

function closure(){

var a = 1;

return function() {

return a++;

}

}

var fn = closure();

alert(fn()); //1;

alert(fn()); //2; 函数内部的变量被改变了

这个是JavaScript的闭包机制, 可以在方法外部修改方法的内部变更量. 类似于.Net的委托机制(Java的Callback); 并且这个内部变量的行为类似强制类型语言中的实例私有成员, 参考下面的代码:

//接上面的代码

var fn2 = closure();

alert(fn2()); //1, 创建了新的闭包

alert(fn()); //3, 原有闭包并未释放,

fn = null; //将对闭包内部变量的引用释放(将fn赋其它值也一样, fn = 1;), 则该闭包将会被gc回收

3, 对象, JavaScript对象一定是使用new关键字创建.

var a = {}; //简化写法等价于 var a = new Object();

var b = []; //简化写法等价于 var a = new Array();

4, 实例, javascript不是面向对象的语言, 但是对象有默认的constructor属性, 引用创建对象的function(可以理解为某类型的实例). 但是, 因为javascript是弱类型动态语言, 可以动态修改对象的结构或使用其它类型的引用为变量赋值, 所以并不能在语言层面确保对象的封装, 参考下面的代码:

function class(){

this.a = 1;

this.b = 'a';

}

function somethingElse() {

return 1;

}

//创建3个class的实例

var a = new class();

var b = new class();

var c = new class();

//此时 a.constructor === b.constructor === c.constructor === class;

a.constructor = somethingElse; //覆盖constructor属性, 这样a就和class没有任何关联了, 虽然有一个instanceof二元操作符, 但是其实现是比较prototype, 本例中都没有指定prototype(默认{}), 所以instanceof是无效的, a instanceof class == true, a instanceof somethingElse == true, a instanceof Object == true,

b = new somethingElse(); //这时b就变成somethingElse的实例了(b.constructor === somethingElse), 但是somethingElse方法没有为实例添加任何成员, 所以b = {};

delete c.b; //删除对象的成员, c = {a: 1}, 这样虽然c.constructor === class(还是class的实例), 但是与其它由class创建的实例外观就不同了.

js里为什么实例化的对象没有prototype属性??

自从有了Ajax这个概念,JavaScript作为Ajax的利器,其作用一路飙升。JavaScript最基本的使用,以及语法、浏览器对象等等东东在这里就不累赘了。把主要篇幅放在如何实现JavaScript的面向对象编程方面。 1. 用JavaScript实现类 JavaScritpt没有专门的机制实现类,这里是借助它的函数允许嵌套的机制来实现类的。一个函数可以包含变量,又可以包含其它函数,这样,变量可以作为属性,内部的函数就可以作为成员方法了。因此外层函数本身就可以作为一个类了。如下:function myClass()这里 myClass就是一个类。其实可以把它看成类的构造函数。至于非构造函数的部分,以后会详细描述。 2. 如何获得一个类的实例 实现了类就应该可以获得类的实例,JavaScript提供了一个方法可以获得对象实例。即 new操作符。其实JavaScript中,类和函数是同一个概念,当用new操作一个函数时就返回一个对象。如下:var obj1 = new myClass(); 3. 对象的成员的引用 在JavaScript中引用一个类的属性或方法的方法有以下三种。 1 点号操作符 这是一种最普遍的引用方式,就不累赘。即如下形式:对象名.属性名;对象名.方法名; 2 方括号引用 JavaScript中允许用方括号引用对象的成员。如下:对象名["属性名"];对象名["方法名"]; 这里方括号内是代表属性或方法名的字符串,不一定是字符串常量。也可以使用变量。这样就可以使用变量传递属性或方法名。为编程带来了方便。在某些情况下,代码中不能确定要调用那个属性或方法时,就可以采用这种方式。否则,如果使用点号操作符,还需要使用条件判断来调用属性或方法。 另外,使用方括号引用的属性和方法名还可以以数字开头,或者出现空格,而使用点号引用的属性和方法名则遵循标示符的规则。但一般不提倡使用非标示符的命名方法。 3 使用eval函数 如果不希望使用变量传递变量或方法名,又不想使用条件判断,那么eval函数是一个好的选择。eval接收一个字符串类型的参数,然后将这个字符串作为代码在上下文中执行,返回执行的结果。这里正是利用了eval的这一功能。如下:alert(eval("对象名." + element.value)); 4. 对对象属性,方法的添加、修改和删除操作 JavaScript中,在生成对象之后还可以为对象动态添加、修改和删除属性和方法,这与其它面向对象的语言是不同的。 nbsp

如果帮助到您,请记得采纳为满意答案哈,谢谢!祝您生活愉快! vae.la

js实例成员(js什么是实例)

本文目录一览: 1、求助,关于js面向对象成员方法的 2、JS类中,静态方法怎么获取实例 3、JS怎么在类实例的事件处理函数中访问类实例的成员 4、javascript的对象和变量之间的区分 5、js

2023-12-08
40个js实例(js什么是实例)

本文目录一览: 1、求JS分页实例或者servlet分页实例,最好有例子能直接运行看看效果 2、js中的数组应用实例 3、JavaScript学习笔记之数组基本操作示例 4、JS隐藏号码中间4位代码实

2023-12-08
js经典实例大全,js案例100讲解

本文目录一览: 1、js闭包是什么? 2、js下拉菜单,怎样更简便的实现? 3、js求和小案例 求解 4、JavaScript学习笔记之数组基本操作示例 5、JavaScript实现计算多边形质心的方

2023-12-08
js实现实例例子,js基础案例

2022-11-24
web的js是什么,javascript什么

2022-11-24
js实用代码片段(js中的实例是什么)

本文目录一览: 1、如何用JS代码实现段落换行? 2、JS代码中div的复制怎么实现 3、js添加代码段 4、php echo 输出一句JS代码。请高手来看下! 5、JS 代码 求解释 可以详细的 说

2023-12-08
js图片时钟实例,js图片时钟实例图

本文目录一览: 1、JS,时钟案例 2、如何使用JS实现一个简易数码时钟 3、js Canvas实现的日历时钟案例有哪些 4、一个JS的简单时钟程序 5、javascript,实现一个时钟,页面显示当

2023-12-08
js高级程序设计笔记14(js高级程序设计笔记14页)

本文目录一览: 1、JavaScript高级程序设计 该怎么看 2、JavaScript学习笔记之数组基本操作示例 3、JS中有关sort以及return的问题 JavaScript高级程序设计 该怎

2023-12-08
js代码中script,js代码中的问号是什么意思

本文目录一览: 1、javascript中script的SRC属性 2、JS代码里加载script代码,并隐藏其内容怎么弄呢? 3、使用javascript必须使script标签吗 javascrip

2023-12-08
js键盘实例讲解,js键盘实例讲解教程

2022-11-22
js代码是什么意思,js编程是什么意思

2022-12-02
java中什么是js,java中什么是jre

本文目录一览: 1、javascript,是java吗? 2、js和java的区别 3、JS是什么 4、什么是JS? javascript,是java吗? 不是的,两者有很大的差别。语法方面JavaS

2023-12-08
htmljs编程笔记(html代码笔记)

本文目录一览: 1、html代码和JS代码有什么区别 2、如何在html中调用js函数 3、JavaScript学习笔记之数组基本操作示例 4、HTML5初学者笔记 5、《web前端笔记7》js字符—

2023-12-08
js基础常见代码小例子,js中的实例是什么

本文目录一览: 1、问一段简短的JS代码,求注释? 2、求三个常用的js代码? 3、帮忙解释一段简单js代码 4、简单的JS代码 问一段简短的JS代码,求注释? 这是用了三个层来做一个字幕的流动效果:

2023-12-08
js代码段事例(js脚本实例)

本文目录一览: 1、一段js代码求解 2、js的一段代码解读 3、求一段JS代码 4、Js编程语言中,自调用函数是什么?举个Js代码例子解释一下! 5、求一段JS代码!鼠标离开文本框后提交数据! 一段

2023-12-08
js实现页面转发功能示例代码(js实现页面转发功能示例代码是

本文目录一览: 1、javascript实现页面跳转功能,参数怎么传递? 2、jsp页面如何实现转发到另外一个jsp页面 3、jsp页面中的js实现跳转 4、如何使用JavaScript实现 按钮跳转

2023-12-08
js实例方法和静态方法(js实例方法和静态方法)

本文目录一览: 1、静态方法和实例方法的区别 2、类实例方法,静态方法的使用与区别 3、javascript中什么时候用静态方法什么时候用实例方法,规则是什么,各好在哪儿? 4、类方法、实例方法和静态

2023-12-08
js动态编程实例,js动态网页设计实例

本文目录一览: 1、JS编程是什么意思? 2、JS动态规划——青蛙跳台阶问题 3、用HTML+JavaScript编程,实现如下功能 4、怎样在hbuilder中用javascript写一个动态留言

2023-12-08
js鼠标示例代码,js鼠标示例代码是什么

本文目录一览: 1、js怎么编写鼠标的右击事件 2、JS控制鼠标点击的代码 3、JS鼠标事件大全 JS鼠标事件有哪些 4、js鼠标悬停显示文字实例 5、如何用JS写鼠标触发事件 js怎么编写鼠标的右击

2023-12-08
js实例网,js销毁实例

本文目录一览: 1、一个javascript制作的网页 2、js的实例化过程究竟是怎么样的 3、js控制页面滚动(实例) 4、js里什么叫实例,什么叫实例化 一个javascript制作的网页 就说思

2023-12-08