对象-javascript prototype问题

问题描述

javascript prototype问题
    function MyClass() {

    }
    MyClass.prototype = null;
    var myClass = new MyClass();
    alert(myClass.toString());

</script>

我这自己定义了一个构造函数 ,并将函数的prototype 设为null 但是为什么我用这个构造函数实例化一个对象之后,
这个对象仍然可以调用toString

解决方案

你定义prototype和toString有什么关系呢?只要不是null或者undefined数据都有toString方法

除非你重新定义过toString为null或者不为函数

     MyClass.prototype = {toString:null};

解决方案二:

prototype1、prototype是与Clone联系起来的,也就是说,当创建实例时,prototype会把成员clone到该Class(function)的实例上。Detail: 最常见的几个内置内对象里的prototype,如:Array原型有join, split方法,当创建数组a时var a=[1,2],原型里的所有方法都被clone到a上。2、this是该类的实例指针(该指针为"动态......
答案就在这里:关于Javascript 的 prototype问题

解决方案三:

在js里头null也是一个object

时间: 2024-11-02 21:41:57

对象-javascript prototype问题的相关文章

再谈JavaScript中对象的prototype链

ECMAScirpt可以识别两种类型的对象:     1.Navtive Object 指语言级别的对象     2.Host Object 有运行环境提供如:document   Native objects是一种松散的结构并且可以动态的增加属性(property),所有的属性都有一个名字和一个值,这个值可以是另一个对象的引用,或者内建的数据类型(String ,Number,Boolean,Null,Undefined).   下面我们通过一个简单的例子,来看看一个JavaScript是如何

JavaScript Prototype对象_javascript技巧

Object-Oriented JavaScript: Using the `Prototype` Property 从JavaScript 1.1开始,它就有了一个内置对象叫Prototype.通过它,可以扩展JavaScript,在对象上编写自定义的属性和方法.举个例子来说.下面自定义了一个叫myTrim的方法,并展示了它的用法. <body> <input type="text" id="textbox" name="textbox

JavaScript prototype对象的属性说明_javascript技巧

一.什么是JavaScript中对象的prototype属性 JavaScript中对象的prototype属性,是用来返回对象类型原型的引用的.我们使用prototype属性提供对象的类的一组基本功能.并且对象的新实例会"继承"赋予该对象原型的操作.但是这个prototype到底是怎么实现和被管理的呢?对于对象的prototype属性的说明,JavaScript手册上如是说:所有 JavaScript内部对象都有只读的 prototype 属性.可以向其原型中动态添加功能(属性和方法

了解JavaScript中对象的prototype属性

一.什么是JavaScript中对象的prototype属性 JavaScript中对象的prototype属性,是用来返回对象类型原型的引用的.我们使用prototype属性提供对象的类的一组基本功能.并且对象的新实例会"继承"赋予该对象原型的操作.但是这个prototype到底是怎么实现和被管理的呢?对于对象的prototype属性的说明,JavaScript手册上如是说:所有 JavaScript内部对象都有只读的 prototype 属性.可以向其原型中动态添加功能(属性和方法

javascript prototype的深度探索不是原型继承那么简单第1/3页_javascript技巧

1 什么是prototype        JavaScript中对象的prototype属性,可以返回对象类型原型的引用.这是一个相当拗口的解释,要理解它,先要正确理解对象类型(Type)以及原型(prototype)的概念.         前面我们说,对象的类(Class)和对象实例(Instance)之间是一种"创建"关系,因此我们把"类"看作是对象特征的模型化,而对象看作是类特征的具体化,或者说,类(Class)是对象的一个类型(Type).例如,在前面的

javascript Prototype constructor的理解(转)

讲JS的构造的,这个比较清晰,但并不表示一定正确. 这几天一直在思考这个东东,感觉比以前理解更深入了. http://blog.csdn.net/chunqiuwei/article/details/22092551 function Person(name){ this.name = name; this.showMe=function(){ alert(this.name); } } Person.prototype.from = function(){ alert('I come from

JavaScript prototype属性详解_javascript技巧

每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法. 私有变量.函数在具体说prototype前说几个相关的东东,可以更好的理解prototype的设计意图.之前写的一篇JavaScript 命名空间博客提到过JavaScript的函数作用域,在函数内定义的变量和函数如果不对外提供接口,那么外部将无法访问到,也就是变

javascript prototype 原型链_prototype

JavaScript中的prototype概念恰如其分地反映了这个词的内含,我们不能将其理解为C++的prototype那种预先声明的概念. JavaScript 的所有function类型的对象都有一个prototype属性.这个prototype属性本身又是一个object类型的对象,因此我们也可以给这个prototype对象添加任意的属性和方法.既然prototype是对象的"原型",那么由该函数构造出来的对象应该都会具有这个"原型"的特性.事实上,在构造函数

javascript Prototype 对象扩展_javascript技巧

Javascript当然也不例外,可是关于对象的引用问题,你考虑过么?通常的做法是一系列对象共享类的方法,而不是为每个对象复制一份函数.下面看看为每个对象复制一份函数的做法. 复制代码 代码如下: var myobject=function(param1,param2) { this.name=param1; this.age=param2; this.showmsg=function() { alert("name:"+this.name+"\n"+"a