javascript 通过原型继承创建一个新对象

function inherit(p) {
  if(p == null) throw TypeError();                                               //p 是一个对象, 但不能是null
  if(Object.create)                                    //如果Object.create()存在
  return Object.create(p);                     //直接使用它   
  var t = typeof p;                        //否则进一步检测
  if(t !== "object" && t !== "function") throw TypeError();    
  function f() {};                         //定义一个空构造函数
  f.prototype = p;                        //将其原型属性设置为p
  return new f();                         //使用f()创建p的继承对象
}

时间: 2024-08-07 00:11:16

javascript 通过原型继承创建一个新对象的相关文章

通过原型继承创建一个新对象

// 通过原型继承创建一个新对象 function inherit(p){ if (p == null) throw TypeError();//p是一个对象,但不能是null if(Object.create) //如果object.create()存在 return Object.create(p); //直接使用它 var t = typeof p;//否则进行进一步检测 if (t !== "object" && t !== 'function') throw

String什么时候创建一个新对象?

1 String a="a"; 2 String b="b"; 3 String c="a"+"b"; 4 String d=a+b; 5 String e="ab"; 6 String f=new String("ab"); 7 System.out.println(c==d); //false 8 System.out.println(c==e); //true 9 System.o

关于JavaScript的原型继承与原型链

在讨论原型继承之前,先回顾一下关于创建自定义类型的方式,这里推荐将构造函数和原型模式组合使用,通过构造函数来定义实例自己的属性,再通过原型来定义公共的方法和属性. 这样一来,每个实例都有自己的实例属性副本,又能共享同一个方法,这样的好处就是可以极大的节省内存空间.同时还可以向构造函数传递参数,十分的方便. 这里还要再讲一下两种特色的构造函数模式: 1.寄生构造函数从形式上来看,这种模式和工厂模式并无区别: function Person(name, age, job){var o = new O

JavaScript 如何从引用类型(Array 、 Object)创建一个新的对象

数组的增删改查 1.新增一项可以使用concat方法,它不会对原有数组进行改动,而是创建一个新数组 let a = [0, 1, 2] let b = a.concat([3]) console.log(a, b) 2.删除一项对于删除某一项的操作,splice也不能满足要求,因为该方法会改变原有数组,相应地我们应该使用slice,并结合es next 新特性. let array = [1,2,3] const removeIndex = (array, index) => { return

JavaScript基础 Date(num) num为毫秒值 创建一个时间对象

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

JavaScript的原型继承

JavaScript是一门面向对象的语言.在JavaScript中有一句很经典的话,万物皆对象.既然是面向对象的,那就有面向对象的三大特征:封装.继承.多态.这里讲的是JavaScript的继承,其他两个容后再讲. JavaScript的继承和C++的继承不大一样,C++的继承是基于类的,而JavaScript的继承是基于原型的. 现在问题来了. 原型是什么? 原型我们可以参照C++里的类,同样的保存了对象的属性和方法.例如我们写一个简单的对象 function Animal(name) { t

Windows下C/C++创建一个新进程

本文翻译自:XQQ524148626的专栏,http://blog.csdn.net/xqq524148626/article/details/4960513 本文地址:http://blog.csdn.net/qingdujun/article/details/41808261 VC++6.0运行通过,示例: #include <iostream> #include <windows.h> using namespace std; int main() { STARTUPINFO

jsWindow 对象 Window 对象 Window 对象表示浏览器中打开的窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 Window 对象集合 集合 描述 frames[] 返回窗口中所有命

一.JSX简介 JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析. 如下(JS写法) var child1 = React.createElement('li', null, 'First Text Content'); var child2 = React.createElement('li', null, 'Second Text Content'); var

node.js javascript理解原型继承

util.inherits util.inherits(constructor, superConstructor)是一个实现对象间原型继承的函数. JavaScript 的面向对象特性是基于原型的,与常见的基于类的不同.JavaScript 没有提供对象继承的语言级别特性,而是通过原型复制来实现的 var util = require('util'); function Base() { this.name = 'base'; this.base = 1991; this.sayHello =