`

javascript constructor prototype

阅读更多

《Constructors considered mildly confusing》

感觉学习javascript,还是要多看看外国人写的东西啊!!!.

 

还是有很多看不懂的地方。je上有人对此的探讨,现摘录一下。至于对错,以后再辨。

 

1. 

In javascript, every object has a constructor property that refers to the constructor function that initializes the object.

这句话的大意是:  

javascript中,每一个对象object 都有一个 constructor属性。而这个属性指向(引用)

        初始化该对象的constructor 函数.

 

         Constructor对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。
         Prototype对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。

 

<script>
function Person(obj){
	this.name = obj.name;
	this.age = obj.age;
}

var one = new Person({
	name : "helloWorld",
	age : 22
});

alert(one.constructor == Person);

</script>

 

看到下面这段测试代码,我疯掉了。还是不知道怎么回事啊!!!

 

<script type="text/javascript">
	function MyConstructor() {};
	alert(MyConstructor.prototype);	//[object Object]
	alert(typeof MyConstructor.prototype); //object
	
	alert(MyConstructor.prototype.constructor ); //function MyConstructor() {}
	alert(typeof MyConstructor.prototype.constructor ); //function
	alert(MyConstructor.prototype.constructor==MyConstructor); //true

	alert(MyConstructor.prototype.constructor.prototype ); //[object Object]

	alert(MyConstructor.constructor);	// function Function() { [native code] }
	alert(typeof MyConstructor.constructor); //function
	alert(MyConstructor.constructor==Function); //true

	alert(MyConstructor.constructor.prototype ); //function () {}
	alert(typeof MyConstructor.constructor.prototype ); //function

	alert(MyConstructor.constructor.prototype.constructor ); //function Function() { [native code] }

	
</script>

 

 

<script type="text/javascript">
	function MyConstructor() {};
	var myobject = new MyConstructor();
	
	alert(myobject.prototype);	// undefined
	alert(typeof myobject.prototype); // undefined

	alert(myobject.constructor);	// function MyConstructor() {}
	alert(typeof myobject.constructor); //function
	alert(myobject.constructor==Function); //false
	alert(myobject.constructor==MyConstructor); //true

	alert(myobject.constructor.prototype ); // [object Object]
	alert(typeof myobject.constructor.prototype ); //object

	alert(myobject.constructor.prototype.constructor ); //function MyConstructor() {}

</script>
 

 

2.  Javascript Prototype (1)

    Javascript Prototype (2)

 

3.  JavaScript 的几个 tip

分享到:
评论

相关推荐

    JS:typeof instanceof constructor prototype区别

    本文将深入探讨四种常用的方法来识别和判断JavaScript中的数据类型:`typeof`、`instanceof`、`constructor`以及`prototype`。 ### 1. `typeof` `typeof`操作符是最常见的类型检测方式之一,它返回一个表示未经计算...

    prototype,__proto,constructor

    分析javascript中 prototype __proto__ constructor之间的关系

    JavaScript的prototype

    JavaScript中的`prototype`是一个核心概念,它涉及到对象继承和函数原型。在JavaScript中,每创建一个函数,该函数就会自动获得一个名为`prototype`的属性,这个属性是一个对象,用于实现对象间的继承。同时,每个...

    JavaScript中的prototype和constructor简明总结

    JavaScript 是一种基于原型的面向对象编程语言,它利用 prototype 和 constructor 两个核心概念来实现对象的继承和原型链继承。在 JavaScript 中,几乎所有的数据类型都有一个 constructor 属性,它指向创建这个数据...

    JavaScript中几个重要的属性(this、constructor、prototype)介绍

    在JavaScript编程中,`this`、`constructor`和`prototype`是三个核心概念,它们在实现对象的创建和继承机制中扮演着至关重要的角色。理解这些概念对于深入学习JavaScript语言和编写高质量的面向对象代码至关重要。 ...

    JavaScript中prototype的使用

    JavaScript中的`prototype`属性是实现面向对象编程的关键概念之一,尤其在JavaScript中,它用于实现对象的继承。本文将深入探讨`prototype`的含义、作用以及如何使用。 1. **什么是prototype** 在JavaScript中,每...

    深入分析js中的constructor和prototype

    在JavaScript中,`constructor`和`prototype`是两个关键概念,它们构成了JavaScript面向对象编程的基础。理解这两个概念对于深入学习JavaScript至关重要。 首先,`constructor`是函数的一个属性,它指向创建该对象...

    了解JavaScript中的prototype (实例)

    JavaScript中的`prototype`是理解面向对象编程的关键概念之一。它是一种机制,允许对象共享属性和方法,从而实现代码复用。在JavaScript中,每个函数(包括构造函数)都有一个内置的`prototype`属性,这个属性指向一...

    javascript new后的constructor属性.docx

    ### JavaScript中的`new`操作与`constructor`属性详解 #### 一、`new`操作符的理解 在JavaScript中,`new`操作符被用于创建一个由构造函数定义的新实例对象。当使用`new`关键字调用一个构造函数时,会执行以下步骤...

    setter-on-constructor-prototype.rar_The Next

    在JavaScript编程中,"setter-on-constructor-prototype.rar_The Next"这个主题涉及到对象属性的访问和修改,尤其是关于构造函数原型链上的setter方法。在描述中提到的"Get the name of the next property of Result...

    深化浅析JavaScript中的constructor_.docx

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

    JavaScript中的prototype(原型)属性研究

    JavaScript中的prototype属性是理解面向对象编程的关键概念之一。在JavaScript中,每个函数都有一个prototype属性,这个属性指向一个对象,这个对象就是所谓的原型对象。当我们创建一个函数实例时,实例会自动获取一...

    深入浅析JavaScript中的constructor

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

    JavaScript constructor和instanceof,JSOO中的一对欢喜冤家

    这是因为 `Stuff.prototype.constructor` 指向 `Person`,因为 `Stuff.prototype` 被初始化时,继承了 `Person` 的 `prototype`,所以 `Stuff.prototype.constructor` 也就等于 `Person`。 `instanceof` 运算符用于...

    详解帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

    JavaScript中的`prototype`、`__proto__`和`constructor`是理解JavaScript面向对象编程的关键概念。这篇文章通过图解的方式深入浅出地解析了这三个概念之间的关系。 首先,`__proto__`属性是对象独有的,它指向对象...

    JavaScript使用Prototype实现面向对象的方法

    在JavaScript中,面向对象的实现主要依赖于函数和原型(Prototype)机制。本文将深入探讨如何使用Prototype实现面向对象的方法,并通过实例来解释其工作原理。 1. Prototype 概念: Prototype是JavaScript中的一个...

    详解Javascript中prototype属性(推荐)

    在JavaScript这种基于原型的面向对象语言中,类(Class)的概念并非原始特性,而是通过构造函数(Constructor)和原型链(Prototype Chain)来模拟。虽然ES6引入了Class语法,但它本质上仍然是对ES5中基于函数的构造...

    javascript中类和继承(代码示例+prototype.js)

    本文将深入探讨JavaScript中的类和继承,并结合`prototype.js`文件中的示例进行解析。 ### 类的概念与模拟 在JavaScript中,我们通常使用函数来模拟类的行为。一个函数可以看作是一个类的定义,通过`new`关键字来...

Global site tag (gtag.js) - Google Analytics