`
cxy020
  • 浏览: 63550 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js constructor属性(2)

 
阅读更多

constructor属性始终指向创建当前对象的构造函数.

 

如果对 constructor的指向不是很理解,请先看

http://cxy020.iteye.com/blog/1028100

//兼容ie浏览器测试
	var console = console || {};
	console.log = console.log || function(a){
		alert(a);
	}

	//类
	function Person(obj){
		obj = obj || {};
		this.sex = obj.sex || 0;
		this.age = obj.age || 0;
	}
	//原型函数
	Person.prototype.say = function(){
		console.log("我今年" + this.age);
	};

	//类
	function ZhangSan(){
		var like = "NV";

		//特权函数
		this.myLike = function(){
			console.log("性别" + this.sex + ",爱好" + like);
		}
	}

	//继承了Person
	ZhangSan.prototype = new Person({"sex":"男","age":18});
	ZhangSan.prototype.myLike = function(){
		//这里访问不到 私有变量 like
		console.log("性别" + this.sex + ",爱好没有");
	}
	//实例化
	var zs = new ZhangSan();

	//调用特权函数
	zs.myLike();
	//调用继承的原型函数
	zs.say();

	//如果要调用ZhangSan的myLike原型函数,则必须先删除特权函数.
	//因为js的查找链,先会搜索到特权函数.
	delete zs.myLike;
	//调用原型函数
	zs.myLike();

	//给父类添加原型函数
	Person.prototype.run = function(){
		console.log("跑的还挺快");
	}

	//在原型链直接添加,可以调用
	zs.run();

	//注意:这里将Person的整个原型链都修改了,
	//那么所有通过原型继承Person的对象都访问不到look
	Person.prototype = {
		//将默认指向object的constructor,指向到Person
		constructor:Person,
		look:function(){
			console.log("看看这个世界");
		}
	}

	//会报错
	//zs.look();

	//那么要如何才能访问到look呢
	//zs的constructor指向的Person
	console.log(zs.constructor == Person);
	//look在Person新的原型链上.那么通过Person的原型链就能访问到
	zs.constructor.prototype.look();

	//换一个思路,可以理解为可以通过constructor属性,继承到两个类.

 

0
0
分享到:
评论

相关推荐

    JavaScript的constructor属性[文].pdf

    JavaScript constructor 属性在类型检查中的应用 在 JavaScript 中,constructor 属性是一种非常有用的工具,可以帮助我们检查变量的类型。Constructor 属性可以帮助我们解决 typeof 函数无法解决的问题,即无法...

    javascript new后的constructor属性.docx

    // prototype对象有一个constructor属性,指向BB这个函数。 console.log(b.constructor === BB.prototype.constructor); // true ``` 这段代码说明了`constructor`属性的基本作用: 1. **原型链上的引用**:`...

    JavaScript精炼之构造函数 Constructor及Constructor属性详解

    对象的constructor属性用于返回创建该对象的函数,也就是我们常说的构造函数,除了创建对象,构造函数(constructor) 还做了另一件有用的事情—自动为创建的新对象设置了原型对象(prototype object)

    Javascript的构造函数和constructor属性

    真正的原因是:一个对象的constructor是它的构造函数的prototype.constructor,而每一个函数都有一个prototype,默认情况下,这个prototype有一个constructor属性,指向的是它自己。 我觉得Javascript的设计本意是让...

    JavaScript中constructor()方法的使用简介

    2. 如何使用constructor属性: 一旦创建了对象实例,我们就可以访问其constructor属性来获取创建该对象的构造函数。在示例中,通过`bool.constructor`就能够获取到Boolean的构造函数。 3. 输出constructor属性: ...

    JavaScript类和继承 constructor属性

    在JavaScript中,constructor属性是一个非常重要的基础概念,它出现在类(Class)和继承(Inheritance)的实现中。constructor属性主要用于识别创建某个对象的构造函数。通常情况下,构造函数的prototype对象会拥有...

    javascript new后的constructor属性

    prototype对象有constructor属性指向BB这个函数;所以alert(b.constructor==BB.prototype.constructor) //true 这里的“有了”的执行过程是先查看b有没有此属性让后去查看prototype里的属性值,不是简单的A=...

    JS:typeof instanceof constructor prototype区别

    在JavaScript(JS)编程语言中,确定变量或对象的类型是一项基本且重要的任务。这不仅有助于理解代码的行为,还能在调试、数据验证以及实现特定功能时提供帮助。本文将深入探讨四种常用的方法来识别和判断JavaScript...

    深化浅析JavaScript中的constructor_.docx

    constructor 属性是 JavaScript 中的一种特殊属性,它返回对创建此对象的数组函数的引用。下面我们来深入浅析 JavaScript 中的 constructor。 constructor 属性是一个非标准的 JavaScript 属性,但是在大多数...

    理解Javascript_11_constructor实现原理

    在JavaScript中,constructor属性是对象模型的一个重要部分,它用于指出创建对象的构造函数。在理解了对象模型之后,我们可以更深入地探讨constructor属性的实现原理。 首先,constructor属性可以被看作是对象的...

    JavaScript中的prototype和constructor简明总结

    在 JavaScript 中,几乎所有的数据类型都有一个 constructor 属性,它指向创建这个数据的构造函数。而 prototype 则是函数所特有的属性,它让函数可以被用作构造器来创建实例,同时这些实例可以共享相同的方法和属性...

    js-constructor:JavaScript

    `person1`和`person2`各自拥有`name`和`age`属性,同时可以访问`sayHello`方法。 除了自定义构造函数,JavaScript还提供了一些内置构造函数,如`Array`、`Object`和`Function`等。例如,`Array`构造函数用于创建...

    js遍历属性 以及 js prototype 和继承

    在JavaScript中,遍历属性、理解`prototype`和掌握继承机制是编程中不可或缺的基本技能。本文将深入探讨这些概念,并通过实例来加深理解。 首先,让我们来看如何遍历JavaScript对象的属性。JavaScript提供了多种...

    深入浅析JavaScript中的constructor

    在JavaScript中,`constructor`属性是一个非常重要的概念,它与对象和类的构造函数紧密相关。构造函数是一种特殊类型的函数,通常用于初始化新创建的对象。当我们谈论`constructor`时,我们指的是一个对象实例的`...

    JS 操作Array数组的方法及属性实例解析

    然而,由于JavaScript的动态性,constructor属性是可以被修改的,所以在实际开发中,更推荐使用`Array.isArray()`方法来确定一个对象是否为数组。 此外,Array对象还包含许多其他的方法,如`push()`、`pop()`、`...

Global site tag (gtag.js) - Google Analytics