javascritpt 原型链

// 基类
var BaseCalculator = function(){
	this.decimalDigits = 2;
};

// public
BaseCalculator.prototype.add = function(x, y) {
	return x + y;
}

// public
BaseCalculator.prototype.subtract = function(x, y) {
	return x - y;
}

// 子类
var Calculator = function() {
	this.tax = 5;
};

// 覆盖重写
Calculator.prototype.add = function(x, y) {
	return x + y + this.tax;
}

// 实例继承
Calculator.prototype = new BaseCalculator();
var calc = new Calculator();
console.log(calc.add(1,1));
console.log(calc.decimalDigits);

/* 原型继承,不让子类访问基类的属性
Calculator.prototype = BaseCalculator.prototype;

var calc = new Calculator();
console.log(calc.add(1,1));
console.log(calc.decimalDigits);// 无法访问
*/

// 原型链遍历从自身属性到原型链,从下向上遍历,到Object.prototype 结束。

Object.prototype.bar = 1;
var foo = {moo:2};

for(var i in foo) {
	console.log(i);
}

// foo bar

for(var i in foo) {
	if(foo.hasOwnProperty(i)) {
		console.log(i);
	}
}

// moo

javascritpt 原型链

时间: 2024-10-07 23:44:23

javascritpt 原型链的相关文章

js的原型链

开篇 之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述.有一句话说的好:如果你不能把一个很复杂的东西用最简单的话语描述出来,那就说明你没有真正的理解.最近正在读<Javascript高级程序设计>,书中对原型对象和原型链的描述让我受益匪浅,下面仅用一个对比性的例子来说明. 我们经常会这么写 function Person () { this.name = 'John'; } var person = new Person(

javascript中的构造函数和原型及原型链

纯属个人理解,有错误的地方希望大牛指出,以免误人子弟 1.构造函数: 构造函数的作用 : 初始化由new创建出来的对象    new 的作用: 创建对象(空对象) new 后面跟的是函数调用,使用new来调用函数,跟普通的直接调用函数主要的不同: 就是 this 的指向不同了 , 再就是 会自动的返回新创建的对象 什么是原型?        原型的作用:就是为了实现继承!  一个对象的原型就是它的构造函数的prototype属性的值. 在讨论原型的时候,是指的 对象和原型对关系 prototyp

JavaScript原型链问题

1. 使用new来创建对象(调用构造函数)时,如果return的是非对象(数字.字符串.布尔类型等)会忽而略返回值;如果return的是对象,则返回该对象. 2. 重写原型会切断原型链: foo = function(){ } foo.proto.x = 3; var foo1 = new foo(); alert(foo1.x);// 有值 foo.proto = { } foo1.x // 出现错误

MDN——javascript——入门——第三章对象——对象.构造函数.原型链.继承——知识点总结

对象Object 由属性property(变量).方法method(函数)组成 var objectName = { member1Name : member1Value, member2Name : member2Value, member3Name : member3Value } member(成员)的值是任意的, 一个如上所示的对象被称之为对象的字面量(literal)——手动的写出对象的内容来创建一个对象.不同于从类实例化一个对象,我们会在后面学习这种方式. 访问对象成员 1.点表示法

原型、原型链

原型和原型链的了解和掌握  在学习原型和原型链的时候有一点费劲,对我第一次学习来说有点绕.所以,今天来给大家说一下:  原型是什么: 原型是一个对象,其他对象可以通过它实现属性继承. 每一个对象都有一个属性叫prototype.   这个prototype的属性值是一个对象,默认的只有一个叫constructor的属性,指向这个函数本身.  原型方式:   该方式利用了对象的 prototype 属性,可以把它看成创建新对象所依赖的原型.  这里,首先用空构造函数来设置类名.然后所有的属性和方法

JS原型与原型链终极讲解

function Person () { this.name = 'John'; } var person = new Person(); Person.prototype.say = function() { console.log('Hello,' + this.name); }; person.say();//Hello,John 上述代码非常简单,Person原型对象定义了公共的say方法,虽然此举在构造实例之后出现,但因为原型方法在调用之前已经声明,因此之后的每个实例将都拥有该方法.从

面向对象、原型链、继承知识梳理

单例模式:就是一个对象咯 var person={ name:'xuwen', age:17 }; var person2={ name:'xiaoxu', age:25 } 工厂模式:就是一个函数,解决批量生产问题 1 function fn(name,age){ 2 var obj={}; 3 obj.name=name, 4 obj.age=age, 5 obj.write=function(){ 6 console.log(obj.name); 7 } 8 return obj; 9 }

内置对象和自定义对象的原型链

内置对象的原型链 新增属性 Object.prototype.mytest = function() { alert("123"); } var o = new Object(); o.mytest(); 重写属性 Object.prototype.toString = function() { alert("破话之王"); } o.toString();

JavaScript原型链

注意: 1. 参考:小角度看JS原型链. 2. f.prototype.constructor属性并不可靠.