prototype
является свойством объекта Function. Это прототип объектов, построенных этой функцией.
__proto__
является внутренним свойством объекта, указывая на его прототип. Существующие стандарты обеспечивают эквивалентный метод Object.getPrototypeOf(O)
, хотя фактический стандарт __proto__
выполняется быстрее.
Вы можете найти отношения instanceof
, сравнив функцию prototype
функции с цепочкой __proto__
объекта и вы можете разбить эти отношения, изменив prototype
.
function Point(x, y) {
this.x = x;
this.y = y;
}
var myPoint = new Point();
// the following are all true
myPoint.__proto__ == Point.prototype
myPoint.__proto__.__proto__ == Object.prototype
myPoint instanceof Point;
myPoint instanceof Object;
Здесь Point
является функцией-конструктором, он строит объект (структуру данных) процедурно. myPoint
- объект, построенный с помощью Point()
, поэтому Point.prototype
сохраняется в это время myPoint.__proto__
.
Попробуйте gregexpr
с perl=TRUE
и используйте регулярные выражения perl с прогнозными утверждениями (см. ?regex
):
gregexpr("(?=CC)","CCCGTGCC",perl=TRUE)
[[1]]
[1] 1 2 7
attr(,"match.length")
[1] 0 0 0
"match.length"
равно нулю (это было бы 2, еслиpattern="CC"
). – Joshua Ulrich 24 October 2011 в 18:48"match.length"
прогнозных утверждений. Я никогда не думал об этом. – Josh O'Brien 24 October 2011 в 19:34