Articles of protótipo de

Entendendo o calcanhar Object.create de Crockford

Eu tenho lido sobre o calço de Crockford para evitar a sobrescrita de protótipos, e entendo que não é a solução definitiva de todas as vezes. Eu também entendo que ES5 Shim pode ser uma alternativa viável para isso. Eu também li este post que fornece uma alternativa mais robusta e segura . Ainda assim, […]

Posso construir um object JavaScript sem usar a nova palavra-chave?

Aqui está o que eu gostaria de fazer: function a() { // … } function b() { // Some magic, return a new object. } var c = b(); c instanceof b // -> true c instanceof a // -> true b instanceof a // -> true É possível? Eu posso fazer b ser um […]

Como estender Array.prototype.push ()?

Eu estou tentando estender o método Array.push para que usando push irá triggersr um método de retorno de chamada e execute a function de matriz normal. Não sei bem como fazer isso, mas aqui está um código com o qual tenho jogado sem sucesso. arr = []; arr.push = function(data){ //callback method goes here this […]

Definir methods através do object de protótipo ou no construtor, diferença?

Você poderia explicar a diferença entre os methods de configuração no construtor e através do object de protótipo? O código a seguir mostra essas duas maneiras de definir os methods – say_hello e say_bye funcionam bem: function MessageClass() { this.say_bye = function() { alert(‘see ya’); }; } MessageClass.prototype.say_hello = function() { alert(‘hello’); }; x = […]

O que é a propriedade `constructor` realmente usada?

Em JavaScript, o object de protótipo de cada function possui um constructor propriedade não enumerável que aponta para a function ( EcmaScript §13.2 ). Ele não é usado em nenhuma funcionalidade nativa (por instanceof , instanceof verifica apenas a cadeia de protótipos), no entanto, somos encorajados a ajustá-lo ao sobrescrever a propriedade prototype de uma […]

Javascript quando usar protótipos

Eu gostaria de entender quando é apropriado usar protótipos em js. Eles devem sempre ser usados? Ou há casos em que usá-los não é preferido e / ou incorre em uma penalidade de desempenho? Ao pesquisar em torno deste site methods comuns para namespacing em js, parece que a maioria usa uma implementação baseada em […]

Método de chamada usando protótipo de JavaScript

É possível chamar o método base de um método protótipo em JavaScript se ele foi substituído? MyClass = function(name){ this.name = name; this.do = function() { //do somthing } }; MyClass.prototype.do = function() { if (this.name === ‘something’) { //do something new } else { //CALL BASE METHOD } };

prototype: escopo profundo de “this” para acessar o escopo da instância

Como o escopo mais superior pode ser armazenado em cache para ser usado mais profundamente no protótipo mais tarde, da seguinte forma: var Game = function(id){ this.id = id; }; Game.prototype = { board : { init: function(){ // obviously “this” isn’t the instance itself, but will be “board” console.log(this.id); } } } var game […]

Como acessar a class interna de assembly externo

Ter um assembly que não posso modificar (fornecido pelo fornecedor) que tenha um método retornando um tipo de object, mas na verdade é de um tipo interno. Como posso acessar os campos e / ou methods do object da minha assembly? Lembre-se de que não posso modificar o assembly fornecido pelo fornecedor. Em essência, aqui […]

Estendendo um Objeto em Javascript

Atualmente estou transformando de Java para Javascript, e é um pouco difícil para mim descobrir como estender objects da maneira que eu quero fazer. Já vi várias pessoas na internet usarem um método chamado extender em object. O código ficará assim: var Person = { name : ‘Blank’, age : 22 } var Robot = […]