javascript中的原型对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body> <script type="text/javascript">
// 原型
// 构造函数的prototype属性的值
function Person() {
this.name = "adfs";
}
// 访问原型:
// console.log(Person.prototype); // 给原型添加的方法
Person.prototype.say = function() {
// console.log("这事原型的方法");
console.log(this.name);
};
Person.prototype.name = "aaaaaaa"; // 表示非公开的方法, 可以使用,但是 可能存在问题
// Person.prototype._init = function() {}; // 通过构造函数来创建对象
var p = new Person();
// 通过p这个实例,来访问到原型中的方法或者是属性
p.say();
Person.prototype.say(); // 以下两种方式调用的区别:
// p.say();
// Person.prototype.say();
//
// 1 通过对象来调用方法是 通过属性搜索原则找到的方法,然后再调用
// 2 直接访问到方法,然后再调用的
// 3 方法内部的 this 指向不同
// 方法内部的this :谁调用的方法,this就是指向谁 // __proto__
// 还可以通过通向直接访问到原型
// 只要是带有 __ 就表示非标准的属性, 不能不再实际项目中使用
// 有些框架中写的方法的名字也带有下划线:
// 表示这些方法是再框架内部使用的
// 如果,你拿来使用,出问题了,框架不负责
// p.__proto__
console.log(Person.prototype === p.__proto__); // true // 构造函数的prototype属性 和 对象的__proto__表示的就是同一个对象
// 只不过是 通过不同的方法来访问这个对象(原型)
p.__proto__.say();
// console.log(p.__proto__); // 两个术语:
// prototype 原型属性
// __proto__ 原型对象 // 就好比是 o1和o2是两个变量,但是这两个变量就是同一个对象
// var o1 = {};
// var o2 = o1;
</script>
</body>
</html>
javascript中的原型对象的更多相关文章
- 简单理解javascript中的原型对象,实现对之间共享属性和行为
javascript中提供了构造函数.可以方便的创建对象. 典型的构造函数例如以下: function Person(name, age) { this.name = name; this.age = ...
- 一句话简单理解javascript中的原型对象
通过构造函数F创建的对象实例p 这个对象p的原型对象是 构造函数中prototype属性指向的对象s,这个对象p中也有个非标准的__proto__属性指向构造函数prototype属性所指向的对象s, ...
- 【转】JavaScript中的原型和继承
请在此暂时忘记之前学到的面向对象的一切知识.这里只需要考虑赛车的情况.是的,就是赛车. 最近我正在观看 24 Hours of Le Mans ,这是法国流行的一项赛事.最快的车被称为 Le Mans ...
- 理解JavaScript中的原型继承(2)
两年前在我学习JavaScript的时候我就写过两篇关于原型继承的博客: 理解JavaScript中原型继承 JavaScript中的原型继承 这两篇博客讲的都是原型的使用,其中一篇还有我学习时的错误 ...
- javascript中的原型继承
在Javascript面向对象编程中,原型继承不仅是一个重点也是一个不容易掌握的点.在本文中,我们将对Javascript中的原型继承进行一些探索. 基本形式 我们先来看下面一段代码: <cod ...
- 图解JavaScript中的原型链
转自:http://www.jianshu.com/p/a81692ad5b5d typeof obj 和 obj instanceof Type 在JavaScript中,我们经常用typeof o ...
- 详解javascript中的this对象
详解javascript中的this对象 前言 Javascript是一门基于对象的动态语言,也就是说,所有东西都是对象,一个很典型的例子就是函数也被视为普通的对象.Javascript可以通过一定的 ...
- javascript进阶-《原型对象和原型链》
原创发布 by @一像素 2015.12 在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象Object 和 函数对象Function. 一般而言,通过new Fun ...
- JS中的原型对象与构造器
在Javascript中:原型对象是属于构造函数的,不属于实例:实例只能共享原型对象中的属性和方法(当然也可以有自己的属性和方法,或者覆盖原型中同名的属性和方法):构造器constructor属于原型 ...
随机推荐
- java模拟Cookies登陆
在使用java访问URL时,如果该URL需要身份验证,那么就不能够直接访问,因为没有登陆.那么,如何解决这个问题呢? 方法是使用java模拟登陆,登陆后记录下cookie信息,在下次发起请求时时将co ...
- 【转载】Java IO 转换流 字节转字符流
字节流输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| FileInputStream 读取文件的输入字节流.----------- ...
- lucene多条件查询”搜索—BooleanQuery
/** * “多条件查询”搜索—BooleanQuery * BooleanQuery也是实际开发过程中经常使用的一种Query. * 它其实是一个组合的Query,在使用时可以把各种Query对象添 ...
- C#第九节课
try catch using System;using System.Collections.Generic;using System.Linq;using System.Text;using Sy ...
- C++引用、类型转换、类和对象(day03)
十 C++的引用(Reference) 引用型函数参数 )将引用用于函数的参数,可以修改实参变量的值,同时也能减小函数调用的开销. )引用参数有可能意外修饰实参的值,如果不希望修改实参变量本身,可以将 ...
- 51nod1134 最长递增子序列【动态规划】
给出长度为N的数组,找出这个数组的最长递增子序列.(递增子序列是指,子序列的元素是递增的) 例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10. Input 第1行:1个数N ...
- MongoDB之Too many open files
在Linux下有时会遇到cannot open /dev/urandom Too many open files的问题.其实Linux是有文件句柄限制的,而且Linux默认一般都是1024(阿里云主机 ...
- 渗透实战(周三):Ettercap·ARP毒化&MITM中间人攻击
今天,我们来讲解如何对小型Wi-Fi局域网发动网络攻击
- dubbo-helloword(二)
项目框架搭建 工程目录创建 entity存放业务实体类 interface存放server接口 concumer是服务消费者(依赖interface和entity) provider是服务提供者(依赖 ...
- mongodb--游标与链式查找
一:游标 [能不用游标的地方就不要用游标,它是占用数据库资源的] find操作是返回一个游标,为了方便我们查看结果,mongodb shell会自动迭代结果.[游标也是递增的] 2.迭代结果的两种方式 ...