函数的原型。。。原型链
2015-10-31 08:54
218 查看
对于这个名词一直感觉模模糊糊不是很清晰,先把理解到的写一写理清思路吧。
对象成员包括属性和方法。
一个被命名的对象成员可以包含任何数据类型。既然函数也是一种对象,那么对象成员除了传统数据类型之外,还可以包含函数。
当被命名的成员引用了一个函数,该成员就被称为一个“方法”。而引用了非函数类型的成员被称为“属性”
javascript 的对象是基于原型的。可以说,原型是其他对象的基础。原型对象被所有的实例对象共享。
对象有两种成员:实例成员和原型成员。实力成员直接存在于对象实例中,而原型成员则从对象原型中继承而来。
注意book的两个实例化成员是title 和 author , 并未定义toString() 方法,但是代码执行并未抛出错误。因为方法toString()是从book的原型对象继承来的。
你可以用hasOwnProperty()来判断对象是否包含特定的实例成员
要确定对象中是否包含特定的属性,可以使用in操作符。
使用in时,都会返回true,因为in不但搜索实例也会搜索原型。
原型链
对象的原型决定了实例的原型。所有对象都是对象Object的实例,并继承所有的基本方法,比如toString() 。你可以定义并使用构造函数来创建另一种类型的原型。
a instanceof B instanceof操作符来判断a是否是B的实例
对象成员包括属性和方法。
一个被命名的对象成员可以包含任何数据类型。既然函数也是一种对象,那么对象成员除了传统数据类型之外,还可以包含函数。
当被命名的成员引用了一个函数,该成员就被称为一个“方法”。而引用了非函数类型的成员被称为“属性”
javascript 的对象是基于原型的。可以说,原型是其他对象的基础。原型对象被所有的实例对象共享。
对象有两种成员:实例成员和原型成员。实力成员直接存在于对象实例中,而原型成员则从对象原型中继承而来。
var book ={ title:"see you again"; author: "Mis.wang" ; } console.log(book.toString()); // [object Object]
注意book的两个实例化成员是title 和 author , 并未定义toString() 方法,但是代码执行并未抛出错误。因为方法toString()是从book的原型对象继承来的。
你可以用hasOwnProperty()来判断对象是否包含特定的实例成员
console.log(book.hasOwnProperty("author") ) // true console.log(book.hasOwnProperty("toString")) //false
要确定对象中是否包含特定的属性,可以使用in操作符。
console.log(book.in("author") ) // true console.log(book.in("toString")) //true
使用in时,都会返回true,因为in不但搜索实例也会搜索原型。
原型链
对象的原型决定了实例的原型。所有对象都是对象Object的实例,并继承所有的基本方法,比如toString() 。你可以定义并使用构造函数来创建另一种类型的原型。
function book(who){ this.name = who ; this.time = "1899"; }; book.prototype.author =function(){ console.log(this.name + "writed in " + this.time ) }; var book1 =new book("Tom Sawyer adventures"); book1.author(); // Tom Sawyer adventures writed in 1899 console.log(book1 instanceof book); // true console.log(book1 instansof Object); //true
a instanceof B instanceof操作符来判断a是否是B的实例
相关文章推荐
- CodeForces 591B Rebranding
- 升级win10后无法听到声音的问题
- 最短路径__Invitation Cards( poj 1511 )
- 【C#】C#数组
- iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
- 特殊字符导致json字符串转换成json对象出错
- 第23章 尝试互联网
- HDU 2063 匈牙利算法
- win10偷跑流量并且Background Intelligent Transfer Service服务无法关闭
- 最短路径__Arbitrage( poj 2240 )
- 精通Andorid4
- 男人一生要闯十道关
- Oracle中rownum_函数用法(转载)
- 2015 SegmentFault 黑客马拉松记录
- 出门问问面试题2016
- 结构体及其应用:认识结构体
- Objective-C中的@property和@synthesize用法
- 2015年mysql最新开发规范
- 最短路径__Cow Contest ( Poj 3660)
- 50. Pow(x, n) (INT; Divide-and-Conquer)