javascript中对象访问自身属性的方式
2017-02-06 10:54
453 查看
在javascript中,通过对象的方法访问对象自身属性时,必须采用this.fieldName的方式。
原因是javascript中Function是无状态的,访问对象的属性时,必须指定当前的上下文状态,即添加this关键字。如果没有指定,则上下文默认为window。
举例如下:
通过控制台执行obj.showName() 输出为空字符串。
原因:obj.showName()执行alert(name);语句时,由于没有为name指定上下文,所以会默认为window.name,而window.name的值为“”,所以输出空字符串。
改动:alert(this.name);
通过控制台执行obj.showName() 输出为“James”。
采用如下定义方式时,行为一致。
原因是javascript中Function是无状态的,访问对象的属性时,必须指定当前的上下文状态,即添加this关键字。如果没有指定,则上下文默认为window。
举例如下:
1 var obj = 2 { 3 name:"James", 4 showName:function(){ 5 alert(name); 6 } 7 }
通过控制台执行obj.showName() 输出为空字符串。
原因:obj.showName()执行alert(name);语句时,由于没有为name指定上下文,所以会默认为window.name,而window.name的值为“”,所以输出空字符串。
1 var obj = 2 { 3 name:"James", 4 showName:function(){ 5 alert(this.name); 6 } 7 }
改动:alert(this.name);
通过控制台执行obj.showName() 输出为“James”。
采用如下定义方式时,行为一致。
1 function Obj(){ 2 this.name="James"; 3 } 4 Obj.prototype.showName=function(){ 5 alert(this.name); 6 } 7 var obj = new Obj();
相关文章推荐
- JavaScript中通过数组索引方式访问和属性名方式访问对象属性的一个小小误区
- javascript面向对象之访问对象属性的两种方式分析
- JavaScript中访问id对象.属性的方式访问属性
- javascript面向对象之访问对象属性的两种方式分析
- JavaScript中访问id对象 属性的方式访问属性(实例代码)
- JavaScript的对象属性的两种访问方式
- javascript对象属性的访问
- 笔记:javascript通过反射和遍历,访问对象的所有属性,及 按引用/按值传递
- JavaScript中定义对象的方式,动态添加属性和动态删除属性!
- javascript面向对象方式,调用属性和方法
- JavaScript对象的创建之外部属性定义方式(基于已有对象扩充其属性和方法)
- javascript创建对象和属性的几种方式
- JavaScript定义对象的2代码种风格和对象属性有两种寻址方式
- JavaScript中常见的几种创建对象的方式:基于对象扩充属性和方法、基于工厂方式创建对象、基于构造函数和基于原型
- JavaScript为对象原型prototype添加属性的两种方式
- JavaScript学习笔记,创建对象,属性访问
- js的对象属性的两种访问方式和对象的内存理解
- [整理]创建JavaScript对象用闭包的方式保证内部数据不能外部所访问
- JavaScript对象属性检查、增加、删除、访问操作实例
- 对象和函数通过数组下表的形式来访问自身的属性