我在下面提供了以下代码:
var BaseViewModel = function(options) {
var template = null;
var initialise = function(options) {
if (options) {
if (options.template) {
template = options.template;
}
}
};
var getTemplateId = function() {
return template.Id;
};
return {
initialise: initialise,
template: template,
getTemplateId: getTemplateId
};
}
var MainViewModel = function () {
this.prototype = new BaseViewModel();
var base = this.prototype;
var initialise = function() {
base.initialise({
template: {
Id: 1,
Name: '',
}
})
console.log(base.template); // Q. Why is this null here?
console.log(base.getTemplateId()); // This however will return a value!
};
return {
initialise: initialise,
};
}
var mainViewModel = new MainViewModel();
mainViewModel.initialise();
initialise()
方法会调用MainViewModel
方法,initialise()
会在BaseViewModel()
上使用模板变量调用base.template
。我的问题是为什么在MainViewModel
初始化之后我无法在{{1}}的给定点访问{{1}}?
谢谢
答案 0 :(得分:1)
你设置
var google = require('googleapis');
var key = require('./Sig-Updater.json');
var gmail = google.gmail('v1');
var jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
['https://www.googleapis.com/auth/gmail.settings.basic', 'https://www.googleapis.com/auth/gmail.settings.sharing', 'https://www.googleapis.com/auth/gmail.modify', 'https://mail.google.com', 'https://www.googleapis.com/auth/gmail.compose',
'https://www.googleapis.com/auth/gmail.readonly' ],
'some_email@somewhere.com'
);
jwtClient.authorize(function (err, tokens) {
if (err) {
console.log('Auth failed because: ' + err);
return;
}
console.log(tokens)
gmail.users.settings.sendAs.update({
userId: 'me',
auth: jwtClient,
sendAsEmail: 'some_email@somewhere.com',
signature: '<div dir="ltr">Hello there</div>'
}, function (err, resp) {
if(err){
console.log(err);
} else {
console.log(resp);
}
});
});
并返回
var template = null;
在更新return {
init: init,
template: template,
getTemplateId: getTemplateId
};
之后,它不会影响构造对象的属性值,因为template
是一个基元,因此通过值传递,它不是通过引用传递的。
为了使其按照您希望的方式工作,您需要直接更新对象属性,例如:
template
答案 1 :(得分:0)
基本上,当您使用Feature: Background with condition
Background:
Given all background steps are done
Scenario: run without background
# steps of the scenario you don't need background
@need_background
Scenario: run with background
# steps of the scenario you need background
时,您可以创建本地或私有变量。使用var
时,您可以创建公共或特权变量(取决于它的编写方式)。这是一个更详细的例子,显示了不同之处。