菜单

掌握JavaScript中的对象

2020年2月12日 - 新闻中心

在JavaScript未有类的概念,创造对象时髦未稳定的模板,可以动态的始建新的个性和格局,在动态创设新特性的时候,我们能做的就是为这一个天性创造新的值,上面二个例子就是创造三个对象并增加x,y八个属性。
复制代码 代码如下: var Programmer = new
Object(卡塔尔; Programmer.name = “Young”; Programmer.age = 25;
alert(Programmer.name + ” : ” + Programmer.age卡塔尔(قطر‎;
JavaScript对象完全分歧于c#或vb对象,JavaScript对象足以看做少年老成组健/值没错集纳,用对象.属性名来访谈叁个目的属性。我们得以把JavaScript对象看成.NET
framework中Dictionary类,大家能够经过”[]”操作符来成立对象属性。 复制代码 代码如下: var Programmer = new
Object(State of Qatar; Programmer[“name”] = “Young”; Programmer[“age”]= 25;
document.getElementById.innerHTML=Programmer[“name”] + ” : ” +
Programmer[“age”]; alert(Programmer.name + ” : ” + Programmer.age);
通过地点的例证能够窥见二种访谈对象的主意是同等的。要是四天性能未有创立,将再次回到”undefined”。
大家黄金时代致能够将函数加多为健/值对聚焦的值,那样就创设为对象的艺术, 复制代码 代码如下: var Programmer = new
Object(State of Qatar; Programmer[“name”] = “Young”; Programmer.age= 25;
Programmer.speak=function(){ alert(this.name + ” : ” + this[“age”]卡塔尔国; }
Programmer.speak(卡塔尔国;
在上头的代码中大家轮流使用”.”和”[]”来定义可访问属性、方法,者=这两种办法的意气风发致的,一时那么些操作符会引致有的定义上的混淆,在为四个曾经存在的质量设置新值是表明的不是很显著,下边大家介绍第三种语法可以进一层鲜明的公布大家的来意。
复制代码 代码如下: var Programmer = {
name : “Young”, age : 25, speak : function(卡塔尔{ alert(this.name + ” : ” +
this.age卡塔尔国; } } Programmer.speak(State of Qatar;
下面的代码特别显明的发布了对象开端化的伊始和终结,我们还足以用这种形式在独享中嵌套对象。
var Programmer = { Figure : {name : “Young” , age : 25 }, Company :
{name : ” Arcadia” , address : “ShenZheng”}, speak : function(卡塔尔(قطر‎{
alert(“name:”+this.Figure.name+”nage:”+this.Figure.age +
“nCompany:”+this.Company.name+” of “+this.Company.address卡塔尔; } };
Programmer.speak(卡塔尔;
这种语法因为其明显的筹算和严厉的代码形式而老大流行,你能够在各样流行的JavaScript
frameworks中见到,包涵前段时间在互连网络风行的JavaScript Object
Notation,JSON是生机勃勃种轻量级的数据沟通格式,同时也轻松机器拆解深入分析和调换,语法也十一分严俊。JSON允许JavaScript在互联英特网交流数据,大家得以用eval将JSON对象转变为地点JavaScript对象。
复制代码 代码如下: var
Programmer=”({name: ‘Young’,age : 25}State of Qatar”; var p = eval; alert;
通过地点的商量大家驾驭了知道了颇负的JavaScript对象都以生机勃勃组词典。在JavaScript中还会有此外二个首要的事物——函数。
1:在JavaScript中,函数都以叁个目的。那点完全不相同于c#中的方法。大家看下边叁个例子。
复制代码 代码如下: function add { var
result = { x : point1.x + point2.x, y : point1.y + point2.y } return
result; } var p1 = { x: 1, y: 1 }; var p2 = { x: 2, y: 2 }; var p3 =
add; alert;2:将函数作为目的的措施。 var Boy= { name:”Young”,
Love:function{ return this.name+” 喜欢上了 “+Girl.name } } var Girl={
name:”Jing” } alert;
以后标题是三个近乎的靶子,一个有love方法,三个没有,因为我们并未概念相符c#的类,而只是简短的始建四个对象,要是您愿目的在于多个目的都有love方法能够象上边那样定义。
复制代码 代码如下: function LoveRelation{
alert(this.name+” 喜欢上了 “+person.name卡塔尔(قطر‎; } var person1={ name:”Young”,
Love:LoveRelation } var person2={ name:”Jing”, Love:LoveRelation }
person1.Love;
上边的代码看上去想创制二个person类,然后成立person类多少个实例,以使那多少个实例具有类似的本性,显著下边代码远远不够。大家能够通过两种门路来满足这种必要。
渠道1: 复制代码 代码如下: function
Person { this.name=n; this.Love=function { alert(this.name+” 喜欢上了
“+person.nameState of Qatar; } } var person1=new Person; var person2=new Person;
person1.乐福; 途径2:利用JavaSctipt对象的prototype属性。 复制代码 代码如下: function Person {
this.name=n; } Person.prototype.Love=function { alert(this.name+” 爱上了
“+person.name卡塔尔(قطر‎; } var person1=new Person; var person2=new Person;
person1.Love; person2.乐福;
下面的例证中,我们能够将Person函数看成Person对象的结构器,而全体通过此布局器构造出来的靶子共用一个prototype属性。
在Douglas Crockford的Private Members In
JavaScript”中,我为大家详细的演示了什么样创立对象的私家成员,其思维不再详细批注,大家大约的重写一下不胜
demo 复制代码 代码如下: function Point {
this.get_x = function() { return x; } this.set_x = function { x =
value; } this.get_y = function() { return y; } this.set_y = function {
y = value; } } Point.prototype.print = function() { return this.get_x()

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图