您的位置:首页 > Web前端 > JavaScript

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 判断数组的最完美方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: