javascript 面向对象基础(三)面向对象的常用属性和方法

本文介绍了JavaScript中对象属性的检测方法hasOwnProperty,构造函数constructor的使用,instanceof运算符的原理及其应用,以及如何利用toString方法进行类型判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * 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 判断数组的最完美方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值