浅谈对象oop的属性和方法以及区别
来源:互联网 发布:淘宝充话费赚钱吗 编辑:程序博客网 时间:2024/06/06 05:28
对象oop的属性和方法以及区别
//1.constructor 保存对象的创建函数 就是它的创造者 例如: var obj = {}; var arr = []; console.log(obj.constructor); // function Object() { [native code] } Object类是基类 console.log(arr.constructor); // function Array() { [native code] }
//2.hasOwnProperty('属性的名称'):用于检测给定属性在当前对象中(而不是原型中)是否存在 例如: obj.name = '程5'; obj.age = 28; console.log(obj); //{name: "程5", age: 28} console.log(obj.hasOwnProperty('name')); // true console.log(obj.hasOwnProperty('height')); // false
//3.isPrototypeOf(obj) 检测原型 函数用于指示对象是否存在于另一个对象的原型链中。如果存在,返回true,否则返回false。例如 function Site() { this.name = "chengMX"; this.url = "http://write.blog.csdn.net/postlist"; this.sayHello = function() { console.log("欢迎来到" + this.name); }; } var s = new Site(); console.log(Site.prototype.isPrototypeOf(s)); // true var obj2 = { engine: "javascript", sayHi: function() { document.writeln("欢迎访问" + this.url); } }; // 使用对象obj覆盖Site本身的prototype属性 Site.prototype = obj2; var s2 = new Site(); console.log(obj2.isPrototypeOf(s2)); // true
//4.propertyIsEnumerable(‘属性名称’) :1.这个属性必须属于实例的,并且不属于原型. 2.这个属性必须是可枚举的,也就是自定义的属性,可以通过for..in循环出来的. var obj3 = { toString: function() { return 'Hello!' } } obj3.hasOwnProperty('toString') //返回 true console.log(obj3.propertyIsEnumerable('toString')); //true // 为了便利起见,规范确定某些属性默认是不可枚举的,比如Object.prototype.toString所以你 for (key in {}),是不会遍历到toString的。所有自定义属性默认是可枚举的,所以 for (key in {toString: ...}),是会遍历到toString的。为了避免你自定义的toString被枚举,可以用Object.defineProperty(obj, 'toString', {value: ..., enumerable: false})
//5.toLocaleString(),toString(),valueOf() 返回对象的字符串表示 但是valueOf 是返回对象的字符串、数值、布尔表示 // 其中,调用数组的toString()和valueOf方法会返回相同的值,即由数组中每个值的字符串形式拼接而成的一个以逗号分割的字符串。 // 实际上,为了创建这个字符串会调用数组每一项的toString()方法。 var colors = ["red", "blue", "green"]; //创建一个包含3个字符串的数组 alert(colors.toString()); //red, blue, green alert(colors.valueOf()); //red,blue,green alert(colors); //red,blue,green // 在这里,首先显式地调用了toString()和valueOf()方法,以便返回数组的字符串表示,每个值的字符串都表示拼接成了一个字符串,中间可以逗号分割。 // 最后一行代码直接将数组传递给了alert()。由于alert()要接受字符串参数,所以它会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。 // 另外,toLocalString()方法经常也会返回与toString()和valueOf()方法相同的值,但也不总是如此。 // 当调用数组的toLocaleString()方法时,它也会创建一个数组的以逗号分割的字符串。 // 而与前两个方法唯一的不同指出在于,这因此i是为了取得每一项的值,调用的是每一项的toLocaleString()方法,而不是toString()方法。 var person1 = { toLocaleString: function() { return "Nikolaos"; }, toString: function() { return "Nicholas"; } } var person2 = { toLocaleString: function() { return "Grigorios"; }, toString: function() { return "Greg"; } }; var people = [person1, person2]; alert(people); //Nicholas,Greg alert(people.toString()); //Nicholas,Greg alert(people.toLocaleString()); //Nikolaos,Grigorios
//6.delete 删除对象的属性 例如 console.log(obj);//{name: "程5", age: 28} delete obj.name; console.log(obj);//{age: 28}
0 0
- 浅谈对象oop的属性和方法以及区别
- JS类,对象,实例,属性,方法,事件区别 以及 原生js click和 onclick的区别
- window对象的常用属性和方法以及对象
- OOP以及OOP的基本原则和优缺点
- jquery对象和dom对象的区别以及转换方法
- 浅谈 JS 对象添加 getter与 setter 的5种方法以及如何让对象属性不可配置或枚举
- 浅谈 JS 对象添加 getter与 setter 的5种方法以及如何让对象属性不可配置或枚举
- 浅谈元素、标签和属性的区别
- 浅谈字段和属性的区别
- OOP: 限制对象属性的访问
- OOP: 限制对象属性的访问
- 类方法 对象方法,以及类方法和对象方法的区别
- ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法
- JS 输出对象的属性以及方法
- 获得对象的方法以及属性
- 浅谈mvc和oop
- javascript面向对象(对象的创建以及属性和方法的添加)
- 21-JavaScript-面向对象-对象的属性和方法以及this
- JavaScript闭包详解
- LBS定位技术之GPS
- conversion constructor
- (一)网络基础知识--图解TCP/IP读书笔记
- [git]merge和rebase的区别
- 浅谈对象oop的属性和方法以及区别
- 设计模式之策略模式
- [debug]调试Release版本应用程序
- C#针对ArcSDE的操作2(矢量数据、栅格数据导入到数据集)
- (译)LearnOpenGL实际案例Breakout(五):小球
- 考试篇(5.2) NSE4 题库 05. SSL VPN ❀ 飞塔 (Fortinet) 网络安全专家
- CentOS 7忘记root密码解决办法
- STM32F40x 内部温度获取
- linux之僵尸进程、孤儿进程