本文目录一览:
- 1、js对象数组 根据某个共同字段 分组
- 2、如何在JS中释放使用new ActiveXObject创建的对象
- 3、关于一段js代码的几个问题
- 4、怎样在页面获取js对象的内容
- 5、如何用js实现类似于面向对象语言中类的私有变量
- 6、JS使用new操作符创建对象的方法分析
js对象数组 根据某个共同字段 分组
1、打开任一浏览器,按F12,进入开发者模式,找到控制台。本文以chrome浏览器为例,打开浏览器之后,打开任一标签页,找到Console控制台。
2、在控制台中,就可以书写js代码了。首先在此处定义一个js对象。直接使用 var obj1 = {}; 定义即可。
3、在控制台中,给js对象赋值,因为js是弱类型的语言,上面定义的对象并不需要指定字段类型,所以,在定义之后,就可以直接给它赋值了。
4、相同的方式,再定义另外一个js对象。直接使用 var obj2 = {}; 定义即可 。
5、在控制台中,给obj2对象赋值,而且,使用与obj1不相同的字段结构。
6、在控制台中,定义一个数组,定义方式如下:var arr = new Array()。
7、在控制台中,使用arr.push(obj1),就可以将对象1存放到js数组中。arr.push(obj2),就可以将对象2存放到js数组中。注意,obj1、obj2两个对象的字段是不相同的,但是,也是可以存放到同一个js数组中的,因为js是弱类型的。最后,直接使用arr,就可以看到当前数组中的对象值。
如何在JS中释放使用new ActiveXObject创建的对象
1、首先在电脑中打开js,使用new Date()可以获得当前的时间,代码如下。
2、当向new Date()传入指定的时间参数时,new Date()就不再是当前的时间了,而是新创建的一个时间。
3、当向new Date()传入两位数年份的参数时,将会解析成19XX年,例如,下面例子时间将是1999年5月24日。
4、当向new Date()传入一个整数参数时,整数将被当作毫秒数来使用,日期将是1970年1月1日加上毫秒数的时间。
5、最后使用new Date()创建的时间,可以使用getDate()方法获得当前时间的日,即1日至31日,下面代码执行的结果为28,如下图所示就完成了。
关于一段js代码的几个问题
据我了解,这段代码应该是微软专用的,可以在 IE 中设置默认主页。也就是说,以上CSS 的 behavior 和 JavaScript 的 setHomePage() 是 IE 的私有语法,他们应该是在 IE5 中引入的,新版本的 IE 仍然支持,不过其他非 IE 内核浏览器是不支持的。
1. return(false) 是为了阻止浏览器的默认行为。比如说,a 的默认行为是产生超链接,单击后影响浏览器的地址栏进行跳转 ,还有 form 中的 button,默认行为是单击后提交表单,那么在 a 或 button 的 onclick 事件函数中 return(false) 就可以阻止这种行为,这样就可以自定义某些功能了。
2. setHomePage(url) 是设置默认主页的,url=你要设置的页面地址。这是为 IE 专门设置的一个方法。
3.behavior 也是专用于 IE 的,就是借助 CSS 样式向 HTML 添加代码,从而产生在 IE 中的某种浏览器效果,“#default#homepage”表示设置默认主页效果。
4. 将 onclick 的代码写在函数中会好一些,比如说 onclick=“function(){ /*代码放在函数里面*/ }”,还有,setHomePage(url) 的 url 应当是整的网址,要有协议头,如“http://”。
关于你说的 this.style.behavior 对 DOM 对象产生的影响问题,我来解释一下:
1. this 指是的当前调用事件函数(如 onclick )的文档对象,如 a onclick="this.setHomePage('......')" , this 就是对象 a 的引用(或者说就是这个 a);
2. 而 obj.style 是对文档对象中 style 属性的引用,比如上面的例子中,写了 this.style.behavior='url(#default#homepage}',就相当于 a style=“behavior:url(#default#homepage)”。
如果你想详细了解,可以看有关 HTML DOM 和 CSS in JavaScript 的资料。另外,IE 的专有语法可能与 Web 标准语法的实现机理不同,所以不用深究。
-----------------------------------------------------------------------------------------
你要的那种“枚举”功能,实际上就是用 for-in 循环实现的,比如说要查看 window 对象的属性:
for(prop in window){
document.write(prop+":"+window[prop]);
}
还有,之前已经说过,this.style 操作的是对象的样式(或者说是 CSS),this.style.behavior 指向的就是 behavior 这个 CSS 属性,这个属性只有 IE 可以完全识别。而 setHomePage() 是微软在 IE 实现的 DOM 中为对象额外定义的一个方法。这两者没有直接联系,也不存在“先有谁,后有谁”的问题,只是配合起来,可以在 IE 上实现添加默认主页的对话框而已。
怎样在页面获取js对象的内容
1.有以下输入控件在HTML中,代码如下:input type="hidden" name="productName" id="productName" value="测试产品名称"。
2.可以使用js来获取id和答案varvalue=文档。getelementbyid(“productName”)。值。
3.接下来,我们将警告(value),看看是否得到了输入的值。我们可以看到,输入的值已经成功弹出。
4.也可以使用文档。getElementsByName方法(name)。
5.如果您测试结果,您仍然可以看到“value”的值成功弹出。
6.您还可以通过jquery获得输入的值,这需要引入jquery的js包并传递代码$("#id").val()。$("#productName").val()。
7.$("输入('name=名字']”).val();例如,上面的例子可以使用$("input['name=productName']").val()。
如何用js实现类似于面向对象语言中类的私有变量
JavaScript中对象的创建有以下几种方式: (一)使用内置对象 (二)使用JSON符号 (三)自定义对象构造 一、使用内置对象 JavaScript可用的内置对象可分为两种: 一,JavaScript语言原生对象(语言级对象),如String、Object、Function等; 二,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body等。 我们所说的使用内置对象,是指通过JavaScript语言原生对象的构造方法,实例化出一个新的对象。如: 复制代码 代码如下: var str = new String("实例初始化String"); var str一 = "直接赋值的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-二陆二 三rd Edition - December 一999》的一个子集。JSON是完全独立于语言的文本格式,因此成为数据交换的理想格式。 JSON作为 JavaScript的一个自己,同时ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、 ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等一系列的语言都提供支持,使得JSON成为Ajax开发的 首选方案。 JSON有两种构建方式,一种是采用简单的“键/值对”的集合,在不同的语言中被理解为对象、记录、结构、字典、哈希表、有键列表,或者关联数组等,另一种采用有序的值列表,大部分语言把它理解为数组。 常用的创建方式是第一种,即采用“键/值对”集合的形式。在这种形式下,一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号),“ ‘键/值' 对”之间使用“,”(逗号)分隔。 JSON具有以下特点:(一)简单格式化的数据交换;(二)易于人们的读写习惯;(三)易于机器的分析和运行。 在JavaScript中,JSON被理解为对象。通过字符串形式的JSON,数据可以很方便地解析成JavaScript独享,并进行数据的读取传递。通过JSON,在一定程度上客服了JavaScript对象无法作为参数系列化传递的问题。 一,简单的JSON {name:"刘德华",age:"二5",sex:"男"} 二,JSON值的类型 JSON的值可以是简单的数据类型,例如数字、浮点、字符等,也可以是数组及对象。例如以数组作为member键值的JSON: {member:[{name:"刘德华"},{name:"郭富城"},{name:"张学友"},{name:"黎明"}]} { book:[{name:"三国演义"},{name:"西游记"},{name:"水浒传"},{name:"红楼梦"}], author:[{name:"罗贯中"},{name:"吴承恩"},{name:"施耐安",{name:"曹雪芹"}}] } 三,在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 = "二"; Animals对象无法被序列化传输,将Animals对象转化为JSON字符串,也就是“{name:"dog",sex:"Male",age:"二"}”。这样,把该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 = 二0; this.standing; this.bust; this.waist; this.hip; } //使用prototype function Girl(){} Girl.prototype.name = "big pig"; Girl.prototype.age = 二0; 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使用new操作符创建对象的方法分析
本文实例讲述了JS使用new操作符创建对象的方法。分享给大家供大家参考,具体如下:
在编写js代码时,我们有时会需要使用函数来模拟java中的类,并用它来产生对象,在定义了一个构造函数之后我们需要使用new操作符来调用调用函数才能得到我们想要的对象。例如:
script
function
Constructor(name){
this.name
=
name
}
var
person1
=
Constructor("张三");//undefined
var
person2
=
new
Constructor("张三");//得到一个对象{name:"张三"}
console.log(person1);
console.log(person2);
/script
运行结果:
如果我们不使用new操作符调用函数,就只会简单的执行函数,并把函数的返回值赋给person1,所以上面的例子中person1的值是undefined,.
如果我们使用new操作符调用构造函数,做了哪些事情呢?
1.构造函数没有返回值
使用new操作符调用函数,会隐式的创建一个对象(我们这里称这个对象为obj),这个对象obj是连接到构造函数的原型上的,即obj会继承构造函数原型上的属性方法,并且构造函数中的this也被绑定到了这个对象上,执行完成后这个对象会被作为返回值返回。
2.构造函数有返回值(这种情况比较少,至少我没用过)
new出来的值由返回值的prototype而定
例如:
function
Constructor(name){
this.name
=
name
return
this.name;
}
var
person
=
new
Constructor("123");//Constructor
{name:
"123"};Object,因为基本类型的prototype都是Object
function
Constructor(name){
this.name
=
name
return
new
String(this.name);
}
var
person
=
new
Constructor("123");//String
{0:
"1",
1:
"2",
2:
"3",
length:
3,
[[PrimitiveValue]]:
"123"},
console.log(person);
运行结果:
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:测试上述代码运行效果。
更多关于JavaScript相关内容还可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
您可能感兴趣的文章:用方法封装javascript的new操作符(一)浅谈javascript中new操作符的原理JS重学系列之聊聊new操作符js构造函数创建对象是否加new问题JavaScript中使用构造器创建对象无需new的情况说明JavaScript
三种创建对象的方法JS
创建对象(常见的几种方法)js中创建对象的几种方式示例介绍js创建对象的几种常用方式小结(推荐)js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)javascript的函数、创建对象、封装、属性和方法、继承