javascript 面向对象基础(三)面向对象的常用属性和方法
2016-05-27 18:05
1111 查看
/** * hasOwnProperty:判断是不是对象自身的属性 * constructor:查看对象的构造函数 * 每个原型都会自动添加constructor属性 * for in的时候有些属性是找不到的 * 避免修改constructor属性 * instanceof 运算符 * 对象与构造函数在原型链上是否有关系 * toString() object方法 */ //hasOwnPrototype测试 var arr = []; arr.num = 10; Array.prototype.num = 20; alert(arr.hasOwnProperty("num")); //true alert(arr.hasOwnProperty("num2")); //false //constructor function arr2(){ } var a = new arr2(); alert(a.constructor); //arr2 var arr3 = []; alert(arr3.constructor == Array); //true // constructor由来 function arr4(){ } arr4.prototype.constructor = arr4; //相当于程序默认生成! 每一个函数都会有的都是自动生成 var a2 = new arr4(); alert(a2.constructor); //arr4; // 修正constructor1 function arr5(){ } arr5.prototype.name = "owl"; arr5.prototype.age = "20"; var a3 = new arr5(); alert(a3.constructor); //arr5 // 修正constructor2 function arr6(){ } arr6.prototype = { //相当于赋值 // constructor : arr6, //修正赋值后a4.constructor 为arr6 name : "owl", age : "20" } var a4 = new arr6(); alert(a4.constructor); //object //instanceof测试 function arr7(){ } var a7 = new arr7; alert(a7 instanceof arr7); //true判断是否在同一个原型链上 alert(a7 instanceof Array); //判断是否为数组 // toString测试:系统下的都是自带的,自己写的都是通过原型链找object下面的 // toString() :把对象转为字符串 var arr8 = [1,2,3]; alert(arr8.toString()); //1,2,3 var arr9 = 255; alert(arr9.toString()); //FF转为16进制 //利用toString做类型判断 var arr9 = []; alert(Object.prototype.toString.call(arr9) == '[object Aarray]'); //object Array 判断数组的最完美方法
相关文章推荐
- js犀牛书
- irda-objs和irda-obj的差别,烧写一个字母的悲剧
- JavaScript获取URL参数
- JavaScript笔记(3)关于重复的定义和遗漏的定义
- JSP生命周期 ,Servlet生命周期
- DOM设置表格隔行变色js代码及鼠标悬停在哪行,哪行字体就加粗效果
- 编写高质量的 JavaScript 代码(一)
- SP namespace (sp.js)
- js中数字取整,保留小数位
- 使用js获取url里的指定参数
- JSON 之FastJson解析
- javascript 用函数实现“继承”
- extjs Form验证、表单验证、表单错误提示位置
- MVC js 传参 中文乱码 utf-8
- JSONModel解析数据成Model
- 利用JSP实现Ajax
- JavaScript里的数组转化新方法Array.From
- javascript 面向对象基础(二) 包装对象原型链
- Phaser.js物理引擎篇
- js正则验证强密码