js面向对象下的属性和方法介绍

责编:menVScode 2017-06-20 17:25 阅读(1011)

        hasOwnProperty()  : 看是不是对象自身下面的属性;

var arr = [];
arr.num = 100;
Array.prototype.num2 = 200;
alert(arr.hasOwnProperty('num'));// true num属性只属于arr对象
alert(arr.hasOwnProperty('num2'));// false

        hasOwnProperty()是在外层的Objectprototype上的;

var arr = [];
alert(arr.hasOwnProperty==Object.prototype.hasOwnProperty);//true 

       

        constructor:查看对象的构造函数

function Dome(){
    this.age = 12;
}
var d1 = new Dome();
alert(d1.constructor); // Dome构造函数

        d1.constructor的调用,就是查看d1是哪个构造函数实例化出来的。

        每个构造函数建立成功后,程序会自动添加constructor属性,指向建立的构造函数。

var arr = new Array();
//arr.prototype.constructor = Array; //自动创建
alert(arr.constructor==Array);// true 做数组的判断

        避免修改construtor属性,Demo.prototype也是一个对象,所以能以json格式进行赋值,但是要对constructor进行修正,不然会指向Object.prototype了。

function Demo(){

}
/*Demo.prototype.addr='xihu';
Demo.prototype.tel=123;*/
Demo.prototype = {//以json格式赋值给原型,会将d2.prototype.constructor=Demo覆盖了。
	addr:'xihu',
	tel:123,
	constructor:Demo//要重新再次添加下
}
var d2 = new Demo();
alert(d2.constructor);

        For in 的时候系统自带属性是找不到的

function Demo(){
}
Demo.prototype.age = 10;
Demo.prototype.name = '小孩';
Demo.prototype.constructor = Demo;

for( var attr in Demo.prototype ){
	alert(attr);//age、name
}
标签: js 面向对象
前端交流群: MVC前端网(menvscode.com)-qq交流群:551903636

邮箱快速注册

忘记密码